2015-04-22 112 views
3

我想編輯我的ListView項目。例如;我有一個listView項目,我點擊這個項目,我加string valueedit text事後我再次點擊這個項目,我添加新的string value並列前string value,再次,再次,再次。當我點擊這個項目時,我想編輯這個listitem。我如何做到這一點?可編輯的ListView項目

的Java源代碼:在訂購收藏

public class MainActivity extends Activity { 
    TextView tvDers; 
    EditText etDers, etDersSaati; 
    EditText etNot; 
    LinearLayout LayoutDers; 
    ArrayAdapter<String> adapter; 
    ListView list; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button btnDersEkle = (Button) findViewById(R.id.btnDersEkle); 

     list = (ListView) findViewById(R.id.listView1); 
     adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1); 
     etDers = new EditText(MainActivity.this); 
     //Dialog 
     AlertDialog.Builder build = new AlertDialog.Builder(MainActivity.this); 
     build.setTitle("Ders Ekle"); 
     build.setView(etDers); 

     build.setPositiveButton("Tamam", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       adapter.add(etDers.getText().toString()); 
      } 
     }); 
     list.setAdapter(adapter); 
     final AlertDialog alertDers = build.create(); 

     btnDersEkle.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       alertDers.show(); 

      } 
     }); 
    } 

} 
+1

你可以發佈你已經有了 –

+0

的代碼,我們需要爲了代碼更容易理解發生了什麼。這聽起來像你會在創建一個自定義視圖,這將有一個ArrayList 值。您可以基於某個特定函數繼續添加/刪除此ArrayList ,並以編程方式爲陣列中的每個項目添加TextView。 –

+0

@ItzHoudini @ Tomer Shemesh編輯。我想編輯我的列表視圖項目。就像那個https://www.youtube.com/watch?v=J2dNih90u1E –

回答

1

保存項目值。將此集合設置爲適配器。添加並刪除此值並在調用適配器後致電notifyDataSetChanged

試試這個。

listView.setOnItemClickListener(new OnItemClickListener(){ 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 
     String item = (String) parent.getItemAtPosition(int position); 
     item += "YourText"; 
     ArrayAdapter adapter = (ArrayAdapter) parent.getAdapter(); 
     adapter.insert(item, position); 
    } 

對不起,但現在我無法測試此代碼。所以我不能肯定地說這是正確的。嘗試不同的變體,你會得到。

UPDATE 從對話框clickListener你可以試試這個:

@Override 
public void onClick(DialogInterface dialog, int which) { 
     ArrayAdapter adapter = (ArrayAdapter) listView.getAdapter(); 
     String item = (String) listView.getSelectedItem(); 
     item += "YourText"; 

    adapter.insert(item, position); 
} 
+0

我不會刪除值。我想要那樣做。 https://www.youtube.com/watch?v=J2dNih90u1E –

+0

好吧。改變你的項目並添加新的。有什麼問題?您可以獲取收集位置的項目並更改它。 – Sirelon

+0

好的,你能看看我的代碼。我如何使用它? –