2013-02-09 33 views
1

我在列表行右側使用自定義ListView,其中包含文本和箭頭圖像。在自定義ListView中調用getView()方法

我有以下

1:MainActivity延伸ListActivity

2:SpecialAdapter延伸ArrayAdapter具有getView()方法。

3:Sqlite數據庫的類。

我有一個EditText並添加Button用於存儲新的文本到數據庫以及我的列表。代碼在這裏。

OnClickListener listenerAdd = new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Comment comment = null; 
      EditText edit = (EditText) findViewById(R.id.edit_txt); 
      String number = edit.getText().toString(); 
      if(!number.equals("")){ 
      comment = datasource.createComment(number); 
      adapter.add(comment); 
      edit.setText(""); 
      adapter.notifyDataSetChanged(); 
      } 
      else{ 
       Toast.makeText(getApplicationContext(), "Please enter a Number",Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }; 

我完全困惑,在哪個類中我應該使用此代碼?

如何調用getView方法?

我在主類中使用了這段代碼,但它拋出異常。

更重要的是什麼適配器我應該使用?

適配器代碼在這裏..

public class SpecialAdapter extends ArrayAdapter<Comment>{ 

    Context context; 
    int layoutResourceId; 
    Comment data[]= null; 
    // Comment dataCom[] = null; 
    public SpecialAdapter(Context context, int layoutResourceId,Comment[] values) { 
     super(context, layoutResourceId, values); 
     this.layoutResourceId = layoutResourceId; 
     this.context = context; 
     this.data = values; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View row = convertView; 
     WeatherHolder holder = null; 

     if(row == null) 
     { 
      LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 
      row = inflater.inflate(layoutResourceId, parent, false); 

      holder = new WeatherHolder(); 
      holder.imgIcon = (ImageView)row.findViewById(R.id.img_arrow); 
      holder.txtTitle = (TextView)row.findViewById(R.id.tv_number); 

      row.setTag(holder); 
     } 
     else 
     { 
      holder = (WeatherHolder)row.getTag(); 
     } 

     Comment comment = data[position]; 
     holder.txtTitle.setText(comment.getComment()); 
     holder.imgIcon.setImageResource(R.drawable.arrow); 

     return row; 
    } 

    static class WeatherHolder 
    { 
     ImageView imgIcon; 
     TextView txtTitle; 
    } 
} 
+0

粘貼適配器代碼 – 2013-02-09 11:22:19

+0

我加入了適配器代碼,請檢查。 @Qadir – 2013-02-09 11:52:10

+0

現在告訴PLZ。最新問題 – 2013-02-09 11:59:00

回答

1

你必須把yourClass其延伸到ActvityonClickListner。還要確保您的XML文件包含該按鈕。否則你會得到異常。

setContentView(R.layout.yourXMLLayoutFileName); 

您的按鈕應該是yourXMLLayoutFileName XML文件中

相關問題