gpt4 book ai didi

java - 第二个 Activity 不会填充

转载 作者:太空宇宙 更新时间:2023-11-04 13:14:50 25 4
gpt4 key购买 nike

过去两周我一直在这个网站上尝试拼凑代码以使这个应用程序执行我想要的操作。我知道我已经很接近了。我知道我已经很接近了。但它不会在第二个 Activity 中填充任何内容。

据我所知,此 Activity 运行良好。我唯一不知道的是文件是否实际上被正确写入,但是当我烘烤应该进入文件的输出时,它返回正确的数据。

MainActivity.java

public class MainActivity extends AppCompatActivity {
double MOA;
TextView turretClicks;
boolean noMOA;
double clicks;

String stringRange;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
turretClicks = (TextView) findViewById(R.id.turretClicks);



// Create an anonymous implementation of OnClickListener
View.OnClickListener btnClickCalc = new View.OnClickListener() {


@Override
public void onClick(View v) {
clicks = (MOA * 4);
String stringClicks = String.valueOf(clicks);

// Toast.makeText(MainActivity.this, clicks + " Clicks", Toast.LENGTH_SHORT).show();

EditText range = (EditText) findViewById(R.id.rangeEntry);
stringRange = range.getText().toString();
turretClicks.setText(stringClicks);

int finalRange = Integer.parseInt(stringRange);
if (finalRange <= 200) {
MOA = 0;
}
if (finalRange > 200 && finalRange <= 225) {
MOA = .5;
}
if (finalRange > 225 && finalRange <= 250) {
MOA = 1;
}
if (finalRange > 250 && finalRange <= 275) {
MOA = 1.65;
}
if (finalRange > 275 && finalRange <= 300) {
MOA = 2.25;
}
if (finalRange > 300 && finalRange <= 325) {
MOA = 2.8;
}
if (finalRange > 325 && finalRange <= 350) {
MOA = 3.5;
}
if (finalRange > 350 && finalRange <= 375) {
MOA = 4.0;
}
if (finalRange > 375 && finalRange <= 400) {
MOA = 4.75;
}
if (finalRange > 400 && finalRange <= 425) {
MOA = 5.50;
}
if (finalRange > 425 && finalRange <= 450) {
MOA = 6.25;
}
if (finalRange > 450 && finalRange <= 475) {
MOA = 7.0;
}
if (finalRange > 475 && finalRange <= 500) {
MOA = 7.5;
}
if (finalRange > 500 && finalRange <= 525) {
MOA = 8.25;
}
if (finalRange > 525 && finalRange <= 550) {
MOA = 9.0;
}
if (finalRange > 550 && finalRange <= 575) {
MOA = 9.75;
}
if (finalRange > 575 && finalRange <= 600) {
MOA = 10.5;
}
if (finalRange > 600 && finalRange <= 625) {
MOA = 11.5;
}
if (finalRange > 625 && finalRange <= 650) {
MOA = 12.25;
}
if (finalRange > 650 && finalRange <= 675) {
MOA = 13;
}
if (finalRange > 675 && finalRange <= 700) {
MOA = 14;
}
if (finalRange > 700) {
noMOA = true;
}


}
};


// Capture our button from layout
Button button = (Button) findViewById(R.id.btnClickCalc);
// Register the onClick listener with the implementation above
button.setOnClickListener(btnClickCalc);



final View.OnClickListener btnRecordRange = new View.OnClickListener() {
@Override
public void onClick(View v) {

Toast.makeText(MainActivity.this, clicks + " Clicks " + "@ " + stringRange + " yards", Toast.LENGTH_LONG).show();


try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("recordings.csv", Context.MODE_PRIVATE));
outputStreamWriter.write("Clicks" + " " + clicks + "," +
" " + "@Range" + stringRange + "\n");
outputStreamWriter.close();
// Toast.makeText(MainActivity.this, recordableClicks
+ " " + recordableRange, Toast.LENGTH_SHORT).show();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}

}

};

// Capture our button from layout
Button recordRange = (Button) findViewById(R.id.btnRecordRange);
// Register the onClick listener with the implementation above
recordRange.setOnClickListener(btnRecordRange);
// Create an anonymous implementation of OnClickListener



final View.OnClickListener btnToRecorded = new
View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new
Intent(MainActivity.this,RangeRecords.class));

}

};

// Capture our button from layout
Button showRecords = (Button) findViewById(R.id.btnToRecorded);
// Register the onClick listener with the implementation above
showRecords.setOnClickListener(btnToRecorded);
// Create an anonymous implementation of OnClickListener

}

}

RangeRecords.java

public class RangeRecords extends Activity {
public static TextView ListItems;
private RelativeLayout lv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_recorded_ranges);
readFromFile("recordings.csv");
lv = (RelativeLayout) findViewById(R.id.relativeLay);
}


public String readFromFile(String fname) {
String ret = "";
ArrayList<String> ar = new ArrayList<>();


try {
InputStream fis = new FileInputStream(fname);
BufferedReader br = new BufferedReader(new
InputStreamReader(fis));

for (String line = br.readLine(); line != null; line =
br.readLine()) {
ar.add(line);

for (int i = 0; i < ar.size(); i++){
TextView textView = new TextView(this);
textView.setText(ar.get(i));
lv.addView(textView);
}
}

br.close();
} catch (Exception e) {
System.err.println("Error: Target File Cannot Be Read");
}


return ret;
}
}

假设所有导入都是正确的。

content_main.xml这里的一切都工作正常。所有数据均显示且按钮正常工作。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main" tools:context=".MainActivity"
android:background="#000000">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculate MOA"
android:id="@+id/textView"
android:textColor="#ff0000"
android:textSize="28dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />

<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculate Clicks"
android:id="@+id/btnClickCalc"
android:textColor="#ff0000"
android:onClick="calcClick"
android:layout_below="@+id/rangeEntry"
android:layout_centerHorizontal="true"
android:layout_marginTop="38dp" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/turretClicks"
android:textSize="28dp"
android:textColor="#ff0000"
android:hint="0"
android:background="#c2c0c0"
android:layout_marginTop="106dp"
android:layout_below="@+id/btnClickCalc"
android:layout_centerHorizontal="true" />

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/rangeEntry"
android:layout_marginTop="88dp"
android:textSize="20dp"
android:hint="Enter Range"
android:background="#c2c0c0"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Clicks"
android:id="@+id/textView2"
android:layout_below="@+id/turretClicks"
android:layout_centerHorizontal="true"
android:background="#c2c0c0"
android:textColor="#fc0000"
android:textSize="20dp" />

<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To Recorded Ranges"
android:id="@+id/btnToRecorded"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />

<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Record Clicks for Range"
android:id="@+id/btnRecordRange"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true" />

</RelativeLayout>

activity_recorded_range.xml

当我切换到此 Activity/ View 时,屏幕是黑色的,除了状态栏(信号、时间等)在白色上有点模糊。这里什么也没有填充。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".MainActivity"
android:id="@+id/relativeLay"
android:background="#000000" >

我在这里缺少什么?

MainActivity 计算瞄准镜炮塔 @ X 范围的点击次数。下一个按钮将此数据记录到 csv 文件中。下一个按钮将您切换到下一个 Activity ,该 Activity 应在 onCreate 中显示 csv 文件中的数据。

最佳答案

我解决了这个问题。在我看来,进入 Java 后,UI 很难理解。我不记得我到底是如何解决这个问题的,但对于那些可能遇到类似问题的人来说,请深入了解您的 UI 的工作原理,并观看此视频以更好地了解 Android 中 UI 布局的工作原理:

https://www.youtube.com/watch?v=E6c3DGnvefY

观看此视频后,IIRC,我发现我的一个布局与另一个布局重叠,并且 TextView 从未被创建。我最终将整个代码分解了。我停止使用文件读取器和写入器,并开始使用共享首选项,它在像我试图完成的简单任务上效果明显更好。再次考虑您的 UI,观看视频以更好地了解如何开始使用 UI,并了解您的 UI 有多复杂。更有可能的是,你试图做得太多太快,这就是我的情况。 :)

关于java - 第二个 Activity 不会填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33639950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com