好的,这就是我所拥有的:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
title = (TextView) findViewById(R.id.title);
description = (TextView) findViewById(R.id.description);
Spinner dropdown = (Spinner) findViewById(R.id.mainMenu);
final String options[] = {"-Turf Diseases-", "Dollar Spot", "Red Thread"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,options);
dropdown.setAdapter(adapter);
dropdown.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
newSelection(options[position]);
}
public void onNothingSelected(AdapterView<?> arg0) {}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void newSelection(String selection) {
if(!selection.contains("-")) {
title.setText(selection);
selection=selection.replace(" ", "_");
selection=selection.toUpperCase();
description.setText("@string/DESC_"+selection);
}
}
options[] 的字符串数组包含草坪疾病菌株的标题(应用程序的目的)。它位于主 Activity 的微调器列表中,当用户单击标题时,动作侦听器会调用最后一个方法 newSelection。此方法应该将标题格式化为:WORD_WORD。
我将描述保存为 strings.xml 中的预定义字符串,全部以 DESC_WORD_WORD 开头。所以按照我的逻辑,我可以这样做:description.setText("@string/DESC_"+selection); 它很容易在strings.xml中找到相应的描述。
事实上,这并没有最终发生。文本只是更改为“@string/DESC_WORD_WORD”而不是预定义的字符串。我试图像一个面向对象的程序员一样思考,但它不适合我......我对 android 相当陌生,所以如果这是一个愚蠢的问题,请放轻松。