2011-11-28 51 views
1

我创建了一个自定义列表视图,并创建了自己的适配器类 我已经充入下面的代码视图:OnItemClick听者自不工作的ListView

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View streamrowView = layoutInflater.inflate(R.layout.streamrow, parent,false); 
    initUI(streamrowView); 

    tvUserMsg.setText(values[position].Message); 
    tvPostDate.setText(values[position].postDate); 

    return streamrowView; 
} 



    private void initUI(View streamrowView) { 
    tvUserMsg = (TextView) streamrowView.findViewById(R.id.tvUserMsg); 
    tvPostDate = (TextView) streamrowView.findViewById(R.id.tvPostDate); 

} 

列表视图可以正常使用,但集onItemClick听众事件不起作用

listView.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> data, View v, int pos, 
       long arg3) { 

      Toast.makeText(getApplicationContext, "list clicked" ,1).show(); 
      System.out.println("*****List clicked!!!"); 

     } 
    }); 

是否有任何其他自定义行的onItemClick侦听器方法。

回答

7
public View getView(final int position, View convertView, 
       ViewGroup parent) { 
      final View vi ;//= convertView; 
      ViewHolder holder; 
      // if (convertView == null) { 
      vi = inflater.inflate(R.layout.row_mbc_language, null); 
      holder = new ViewHolder(); 
      holder.txtViewLangItem = (TextView) vi 
        .findViewById(R.id.txtViewLangItem); 

      holder.imgViewSelectedLang = (ImageView) vi 
        .findViewById(R.id.imgViewSelectedLang); 

      vi.setTag(holder); 

      vi.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 
        // TODO Auto-generated method stub 
        BibleActivity.selectedLangCode = MBCLanguageListAdapter.this.resultsLang[position].languageCode; 
        MainActivity.SavePreferences("langCode", 
          BibleActivity.selectedLangCode, 
          MBCLanguageListAdapter.this.activity); 
        notifyDataSetChanged(); 

       } 
      }); 

      holder.txtViewLangItem.setText(this.resultsLang[position].language); 
      if (this.resultsLang[position].languageCode 
        .equals(BibleActivity.selectedLangCode)) { 
       holder.imgViewSelectedLang.setVisibility(View.VISIBLE); 
      } 

      return vi; 
     } 
3
public View getView(final int position, View convertView, ViewGroup parent) { 
convertView.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) {} 
} 
+1

程式码仅作答案是不是真的有帮助。而你的缩排是可怕的。 – nalply

+1

不错的安渥:P +1 – SALMAN