2011-04-18 41 views
1

我試圖讓這個來添加,沒有發生任何事情。我已經對我的arrrayadapter進行了調整,它應該可以工作。不能添加項目到自定義arrayadapter

public class TaskTracker extends Activity { 

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

    Button addButton; 
    addButton=(Button)findViewById(R.id.button1); 
    ListView myListView= (ListView)findViewById(R.id.listView1); 
    final EditText myEditText= (EditText)findViewById(R.id.editText1) ; 
    //this.setListAdapter(new ArrayAdapter<String>(this,R.layout.row)); 


    final ArrayList<String> items = new ArrayList<String>(); 
    //this.setListAdapter(new TTAdapterView(this,items)); 
    final TTAdapterView aa = new TTAdapterView(this,items); 
    //final ArrayAdapter<String> aa = new ArrayAdapter<String>( 
    // aa = new ArrayAdapter<String>(this, 0); 
    //myListView.setAdapter(aa); 


    addButton.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 

      aa.add(myEditText.getText().toString()); 
      //taskitems.add(count, myEditText.getText().toString()); 
      aa.notifyDataSetChanged(); 
      myEditText.setText(""); 
      myEditText.requestFocus(); 
             } 
    }); 
} 
} 

public class TTAdapterView extends ArrayAdapter<String> { 

private final Activity context1; 
private final ArrayList<String> items; 

public TTAdapterView(Activity context, ArrayList<String> items){ 
    super(context,R.layout.row,items); 
    this.context1 = context; 
    this.items = items; 
} 
static class ViewHolder{ 
    public TextView task; 
    public Chronometer time; 
    public CheckBox complete; 

} 

@Override 
public View getView(int position, View convertView, ViewGroup parent){ 

    ViewHolder holder; 
    View rowView = convertView; 

    if(rowView==null){ 
     LayoutInflater vi = context1.getLayoutInflater(); 
     rowView = vi.inflate(R.layout.row, null, true); 
     holder = new ViewHolder(); 
     holder.task = (TextView) rowView.findViewById(R.id.textView1); 
     holder.time = (Chronometer) rowView.findViewById(R.id.chronometer1); 
     holder.complete = (CheckBox) rowView.findViewById(R.id.checkBox1); 
     rowView.setTag(holder); 
    } 
    else{ 
     holder = (ViewHolder) rowView.getTag(); 
    } 

    return rowView; 
} 

} 

任何想法,爲什麼它不更新?謝謝

回答

0

這個答案是正確的,,

String taskText=items.get(position); 
holder.task.setText(taskText); 
2

您沒有在listview -_-中設置行的內容!

至少你應該這樣做內getView:

String taskText=items.get(position); 
holder.task.setText(taskText); 
+0

我應該做的onclick的getView在我的添加按鈕? – Intelwalk 2011-04-18 05:58:31

+0

@ user695156不,只需將add按鈕保留在getView外部即可。 – ninikin 2011-04-18 06:19:04

+0

請檢查此http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/一個非常好的教程自定義ListView – ninikin 2011-04-18 06:20:26

相關問題