【发布时间】:2021-09-14 16:05:36
【问题描述】:
在第一个活动中选择微调器项目时,我希望所选项目的名称出现在第二个活动的屏幕顶部(它确实如此),并在第二个活动中显示与所选项目关联的字符串活动(目前没有)。
目前无论选择哪个微调器项,它都会显示相同的字符串。
我想我应该从第二个 Java 类中调用字符串资源,但我不知道该怎么做。我已经在这里和其他地方寻找答案,但到目前为止没有任何效果。如果有人能告诉我这是如何完成的,我将不胜感激。谢谢!
如果我点击任何“战舰”字符串显示。我如何让它仅在选择战舰北卡罗来纳时显示?字符串必须存储在字符串资源文件中。谢谢,我是安卓新手。这是我的第一个项目。
这是第一个活动的 Java 代码和活动:
private boolean isFirstSpinnerItem = true;
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long l) {
findViewById(R.id.sites);
String text = parent.getItemAtPosition(position).toString();
if (isFirstSpinnerItem) {
isFirstSpinnerItem = false;
} else {
Intent intent = new Intent(this, DetailActivity.class);
intent.putExtra(DetailActivity.EXTRA_MESSAGE, text);
startActivity(intent);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
tools:context=".MainActivity">
<Spinner
android:id="@+id/sites"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="16dp"
android:layout_marginTop="40dp"
android:entries="@array/historic_sites" />
</LinearLayout>
这是第二个活动的 Java 代码和活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
Intent intent = getIntent();
String messageText = intent.getStringExtra(EXTRA_MESSAGE);
TextView messageView = findViewById(R.id.sites);
messageView.setText(messageText);
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".DetailActivity">
<TextView
android:id="@+id/sites"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="16dp"
android:layout_marginTop="40dp"
android:entries="@array/historic_sites"
android:textSize="25sp" />
<TextView
android:id="@+id/battleship"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/battleship"
android:layout_gravity="center"
android:layout_margin="16dp"
android:layout_marginTop="40dp"/>
</LinearLayout>
<resources>
<string name="app_name">Wilmington Walkabout</string>
<string-array name="historic_sites">
<item>Please select an option</item>
<item>Battleship North Carolina</item>
<item>Wilmington Railroad Museum</item>
<item>Bellamy Mansion Museum</item>
</string-array>
<string name="battleship"> display only if battleship north carolina is selected.</string>
<string name="railroad"> display only if Wilmington Railroad Museum is selected</string>
<string name="house">display only if Bellamy Mansion Museum is selected</string>
</resources>
【问题讨论】: