2012-02-10 82 views
0

我正在製作一個需要使用ListView的Android應用程序。一旦用戶按下menubutton,它會彈出一個包含TextView,EditText和兩個按鈕「Ok」和「Cancel」的彈出窗口。一旦用戶按下「確定」,EditText中的文本應該被添加到ListView中。取消按鈕很明顯。我也希望能夠長按一個ListView項來打開一個包含刪除按鈕的popup窗口。我怎樣才能使這成爲可能?我使用此代碼至今:動態添加項目到列表視圖

public class NotesActivity extends ListActivity { 
/** Called when the activity is first created. */ 
Button AddItemToListView; 
    static final String[] COUNTRIES = new String[] { 
     "Matte på A1 med Ole", "Engelsk på klasserommet", "Film på A1 etter friminuttet" 
     }; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.notes); 
    setListAdapter((ListAdapter) new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES)); 

    ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 

    lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
     // When clicked, show a toast with the TextView text 
     Toast.makeText(getApplicationContext(), "Note: " + ((TextView) view).getText(), 
      Toast.LENGTH_SHORT).show(); 
    } 
    }); 
    } 
@Override 
public boolean onCreateOptionsMenu(Menu meny) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.listviewmenubuttons, meny); 
    return true; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
    case R.id.AddItemToListView: 
     Toast.makeText(NotesActivity.this, 
       "Add note button pressed", Toast.LENGTH_SHORT) 
       .show(); 
     break; 
     } 
    return true; 
} 
} 
+0

看看這個: http://stackoverflow.com/questions/5420282/how-to-pass-variables-on-long-press-on-listview – 2012-02-10 16:42:13

回答

0

嘗試做對話框上一些研究,如果你想訪問listview.setonlongclick後添加功能()。這是Android對話框開發人員的link

+0

我敢肯定這是你在找什麼。更多的例子,我很確定谷歌會幫助你。 – wesdfgfgd 2012-02-10 16:24:42

0

由於您正在使用ArrayAdapter,因此當用戶點擊添加時,您必須將新項添加到您的數組(從數組更改爲List以使其更容易)。然後你應該從ArrayAdapter調用notifyDataSetChanged()。

對於刪除是相同的,但是您從列表中刪除該項目。對notifyDataSetChanged()的調用是告訴ListView它需要重繪自己。

+0

我該如何將它更改爲列表? – user1183066 2012-02-13 18:54:16

+0

http://www.javamex.com/tutorials/collections/using_1.shtml – 2012-02-14 11:05:07

相關問題