進出口新的與Android編程和我正在試圖通過允許用戶通過輸入一個的EditText文字,使一個ListView。我終於得到它的工作但是我不明白爲什麼我的第一種方法沒有奏效:安卓:使用的ListView ArrayAdapter/ArrayList的
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,values);
lv.setAdapter(adapter);
這引起了強制關閉應用程序推出的時候,我發現了它lv.setAdapter是由於(適配器)
經過許多計算器問題去後,我看到一個回答說,沒有必要使用ArrayList和ArrayAdapter。所以我試了下面,它的工作原理:
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
lv.setAdapter(adapter);
這次它工作完美時,我沒有創建數組列表。
所以,我的問題是,爲什麼做這個工作的時候,我沒有定義/創建我的ArrayAdapter一個字符串數組,爲什麼我的第一個方法沒有工作。
感謝提前的幫助,我很抱歉,如果我沒有張貼足夠的代碼。
編輯:這是我第方法將在後面 我試圖重新我的第一個方法,它下面是: 它仍然強行關閉像第一次。只是要注意,在我的第二個方法(工作)中,我所做的並不是使用ArrayList,而是使用arrayAdapter構造中的第3個參數。現在,你的答案告訴我,我可能有價值爲「空」,我認爲你是正確的。我怎麼能糾正這在未來的使用?謝謝!
public class TaskPage extends SherlockActivity {
EditText display;
ListView lv;
ArrayAdapter<String> adapter;
Button addButton;
ArrayList<String> values;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
display = (EditText) findViewById(R.id.editText1);
lv = (ListView) findViewById(R.id.listView1);
addButton = (Button) findViewById(R.id.button1);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
lv.setAdapter(adapter);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String task = display.getText().toString();
values.add(task);
adapter.notifyDataSetChanged();
}
});
你有從當力閉合發生的堆棧跟蹤? –
什麼是「價值觀」? –
值是我的ArrayList的名稱。我有一個按鈕接收EditText文本,然後轉換爲一個字符串。然後我把這個放入數組列表中作爲值 – user1949400