Android初學者在這裏。我在玩ListViews,試圖動態地創建它們而不是XML文件。我在我的代碼中觀察到以下奇怪的行爲。以編程方式創建ListView
public class SettingsHolder extends Activity {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ListView lv = new ListView(this);
String[] values = new String[10];
for(int i=0;i<10;i++){
values[i] = ""+i;
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, values);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//Toast.makeText(getBaseContext(), ""+arg2, Toast.LENGTH_SHORT).show();
Log.d("DEBUG", ""+arg2);
}
});
ll.addView(lv);
setContentView(ll);
}
}
基本上我首先創建一個LinearLayout對象,然後將一個ListView對象作爲它的一個子對象。我發現這樣創建的列表項不可點擊。但是,如果我寫的
setContentView(lv);
代替
setContentView(ll);
列表項的點擊。任何人都可以解釋一下嗎?如果我必須以後一種方式實施我的課程,如何讓列表項目可點擊?我不想去ListActivity的方式。
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
你的代碼看起來很好,我甚至編譯可以肯定,但OnItemClickListener按照承諾執行... – Sam
如果設置內容視圖然後添加listvieww,會發生什麼? – Barak
不,仍然不起作用。列表顯示正常,但列表項不可點擊。 – VJune