2013-10-24 53 views
2

我是初學者,我想在我的預定義的陣列添加新項列表視圖中的動態

public class MainActivity extends ListActivity { 
     //LIST OF ARRAY STRINGS WHICH WILL SERVE AS LIST ITEMS 
     ; 
     String listItem[]={"Dell Inspiron", "HTC One X", "HTC Wildfire S", "HTC Sense", "HTC Sensation XE"}; 


     ArrayAdapter<String> adapter; 
     EditText et; 

     @Override 
     public void onCreate(Bundle icicle) { 

     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     adapter=new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, 
      listItem); 
     setListAdapter(adapter); 
     et=(EditText) findViewById(R.id.editText); 
    } 


    public void addItems(View v) { 
     String data=et.getText().toString(); 
     listItem.add(""+data); 
     adapter.notifyDataSetChanged(); 
    } 
} 
+1

問題到底是什麼? – Josh

+0

我想通過edittext和按鈕 – Illusionist

+0

在我的列表視圖中顯示的數組listItem中添加項目。這仍然不是一個問題陳述,也不是一個問題。快速瀏覽後,我猜'listItem.add(「」+ data)'給你一個編譯錯誤?數組沒有'add()'方法。可以使用'List '或直接添加到適配器。當執行後者時,可以刪除顯式的'notifyDataSetChanged()'調用,因爲調用'add()'會爲你做。 –

回答

4

魔術師添加項目,我覺得你的痛苦作爲一個初學者,並與這些練習自己的努力。上述關於使用列表並直接添加到適配器的建議是正確的。我已經包括了練習的改變版本,但它基本上做了你想做的事情。我添加了幾個按鈕,一個用於向列表中添加一個新項目,另一個用於退出應用程序。兩者都在xml佈局文件中爲主要活動添加了「onClick」。

看看你是否可以按照我所做的事情,讓我知道,如果您有任何問題或疑慮...

import java.util.ArrayList; 
import java.util.List; 

import android.os.Bundle; 
import android.app.Activity; 
import android.app.ListActivity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 

public class MainActivity extends ListActivity { 
EditText et; 
String listItem[]={"Dell Inspiron", "HTC One X", "HTC Wildfire S", "HTC Sense", "HTC Sensation XE"}; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    et = (EditText) findViewById(R.id.editText); 

    List values = new ArrayList(); 
    for (int i = 0; i < listItem.length; i++) { 
     values.add(listItem[i]); 
    } 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, values); 
    setListAdapter(adapter); 
} 

public void onClick(View view) { 
    ArrayAdapter<String> adapter = (ArrayAdapter<String>) getListAdapter(); 
    String device; 
    switch (view.getId()) { 
    case R.id.addItem: 
     List myList = new ArrayList(); 
     device = et.getText().toString(); 
     myList.add(device); 
     adapter.add(device); 
     et.setText(""); 
     break; 
    case R.id.exit: 
     finish(); 
     break; 
    } 
    adapter.notifyDataSetChanged(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

}

相關的XML佈局文件的樣子......

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <Button 
     android:id="@+id/addItem" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Add Item" 
     android:onClick="onClick"/> 
    <Button 
     android:id="@+id/exit" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Bye Bye" 
     android:onClick="onClick"/> 
</LinearLayout> 
    <EditText 
     android:id="@+id/editText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="Text Goes Here"/> 

<ListView 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

</LinearLayout> 

注意:注意ListView id;它必須是你使用ListActivity的時候看到它的方式...... http://www.vogella.com/articles/AndroidListView/article.html

+0

嗨,請問我可以知道如何在listview中動態地填充子項目。我無法找到一個清晰的教程,但您的列表視圖解釋清晰。 –

相關問題