這是我正在嘗試做的。 我有一個從保存在/values/menu.xmlListView contentview從外部xml文件更改
一個xml資源文件填充它有這個代碼中有一個列表視圖:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="menuchoices">
<item name="pv">Present Value</item>
<item name="fv">Future Value</item>
<item name="bond">Bond Pricing</item>
</string-array>
</resources>
到目前爲止那麼簡單。然後我的Main.java文件看起來像這樣:(改編自其它這裏列表視圖問題)
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView lv = (ListView) findViewById(R.id.listView1);
lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.menuchoices)
));
}
public void onListItemClick(ListView partent, View v, int position, long id) {
if ("pv".equals(getResources().getStringArray(R.array.menuchoices)[position])){
setContentView(R.layout.presentvalue);
}
}
}
基本上,我讀了推出新活動所有的時間是不是最好的做法,所以我只是告訴if語句來改變內容查看。問題是 - 當我點擊列表中的第一個項目時沒有任何反應。我也嘗試用「現值」來代替「pv」,但它也沒有幫助。
我覺得這個我beacuase我採取了代碼的帖子,問題是List View selection to start a new Activity),但我不知道如何改變它,所以它與外部XML資源文件的工作。
這應該是一個簡單的修復嗎?
在此先感謝
最大
附:所有其他的東西工程(該presentvalue.xml文件是在佈局文件夾列表中正確顯示當我運行的應用程序)
編輯//
這裏是有問題的線
public void onListItemClick(ListView parent, View v, int position, long id) {
if (view.getText().toString().equals("Present Value")){
startActivity(new Intent(Main.this, PresentValue.class));
}
}
我改變了它,但當我點擊屏幕上的任何一項時,仍然沒有任何反應。正如我前面所說,列表和一切偉大工程剛剛的onclick沒有做任何事情(當我點擊有事沒事出現在logcat中) – Killerpixler
只是我有錯誤,現在 觀點不能得到解決 附:錯字是在這裏堆棧,但不是在我的代碼 – Killerpixler
如果你的佈局不是太大使用[ViewFlipper](http://developer.android.com/reference/android/widget/ViewFlipper.html)。但我不認爲調用'setContentView()'重新創建佈局是可行的,你可以像這樣設置一個用於onCreate()的成員變量'setContentView(layoutID)',設置'layoutID = R.layout。 present_value'在你的itemClick函數中,然後自己調用onCreate(),但這看起來很危險。 – Sam