2011-11-28 36 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