2011-04-18 68 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

相关问题