2013-09-24 67 views
0
public class MyActivity extends Activity { 
    Context context; 
    List<String> tasks; 
    ArrayAdapter<String> adapter; 

    /** 
    * Called when the activity is first created. 
    */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     context = this; 
     tasks = new ArrayList<String>(); 

     Button add = (Button) findViewById(R.id.button); 
     add.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       EditText editText = (EditText) findViewById(R.id.editText); 
       editText.setVisibility(1); 

       InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.showSoftInput(editText, 0); 

       String value = editText.getText().toString(); 
       tasks.add(value); 

       adapter = new ArrayAdapter<String>(context,R.id.listView,tasks); 
       ListView listView = (ListView) findViewById(R.id.listView); 
       listView.setAdapter(adapter); 
      } 
     }); 
    } 
} 

在這裏,我從用戶那裏獲得價值。我試圖將它添加到列表視圖動態。但是,它顯示了一個名爲「Unfortunatly app is closed」的錯誤。它向任務變量添加字符串值失敗。任務是一個字符串列表。如何在android中動態添加字符串到ListView?

tasks.add(value); 

如果我嘗試添加別的東西也是失敗的。像,

tasks.add("something"); 

我不知道是什麼問題。但我相信它在這條線上是失敗的,因爲如果我刪除這一行,我的應用程序工作正常。如果有人知道它爲什麼失敗,請讓我知道。提前致謝。

+0

你能發佈錯誤嗎?我猜這是在任務列表中的NPE,也許是在輪換之後?其運行時錯誤爲 – Eluvatar

+0

。我如何發佈? –

+0

你的logcat說什麼? – Raghunandan

回答

5

源代碼錯誤太多。試試下面的代碼,並明白你在寫什麼,而不是盲目地複製粘貼。

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    context = this; 
    tasks = new ArrayList<String>(); 

    // instances all your variables on initial only 
    Button add = (Button) findViewById(R.id.button); 
    final EditText editText = (EditText) findViewById(R.id.editText); 

    // second parameter is row layout, 
    adapter = new ArrayAdapter<String>(context,android.R.layout.simple_list_item1,tasks); 
    ListView listView = (ListView) findViewById(R.id.listView); 
    listView.setAdapter(adapter); 



    add.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      editText.setVisibility(1); 

      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.showSoftInput(editText, 0); 

      String value = editText.getText().toString(); 
      tasks.add(value); 

      // this method will refresh your listview manually 
      adapter.notifyDataSetChanged(); 
     } 
    }); 
} 
+1

資源有一個小錯誤:-) android.R.layout.simple_list_item_1 –

相關問題