2012-03-12 71 views
0

我在我的應用程序下面的代碼:的ListView不聽OnClickListener

     AnotherCursorAdapter adapter = new AnotherCursorAdapter(CadItemActivity.this, 
                       R.layout.imgsinternas, 
                       cursorImagens, 
                       new String[] {"nome", "tags",}, 
                       new int[] { R.id.txtNome, R.id.txtTags }); 
         telaScroll.setAdapter(adapter); 


    telaScroll.setClickable(true); 
    telaScroll.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> av, View v, int pos, long id) { 
      Log.d("1212121", "OnClick"); 
      // return false; 
     } 
    });   

代碼AnotherCursorAdapter:

public class AnotherCursorAdapter extends SimpleCursorAdapter { 

    private LayoutInflater inflater; 
    public AnotherCursorAdapter(Context context, 
           int layout, 
           Cursor c, 
           String[] from, 
           int[] to) { 
     super(context, layout, c, from, to); 
     inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    @Override 
    public void bindView(View view, Context context, Cursor cursor) { 
      // get the views from the row 
      TextView name = (TextView) view.findViewById(R.id.txtNome); 
      TextView tags = (TextView) view.findViewById(R.id.txtTags); 
      ImageView img = (ImageView) view.findViewById(R.id.figura); 
      //asign the values 
      name.setText(cursor.getString(4)); 
      tags.setText(cursor.getString(3)); 

      name.setClickable(true); 
      tags.setClickable(true); 
      img.setClickable(true); 


    } 

    @Override 
    public View newView(Context context, Cursor cursor, ViewGroup parent) { 
     View v = inflater.inflate(R.layout.imgsinternas, null); 
     return v; 
    } 
} 

telaScroll是我的數據庫填充一個ListView。我沒有從ListActivity擴展。

上面的代碼不工作!

事件沒有被觸發!

我在做什麼錯? =(

+0

您是否使用自定義適配器?你的名單有什麼看法。即你的列表是否帶有點擊監聽器的按鈕? – Jayabal 2012-03-12 04:47:43

+0

你好巴亞!謝謝回答。我使用的是自定義適配器,而我的listview是一個包含imageview和文本的列表。他們充氣。我將它們設置爲android:clickable =「true」,但它沒有幫助。我想單擊圖像(也許也是textview)並獲取他們的信息。你能幫我嗎? – 2012-03-12 04:53:22

+0

可以粘貼更多的代碼,我可以看到這是什麼問題 – Khan 2012-03-12 04:57:10

回答

1

嘗試設置onClickListener您在您的列表項的文字和/或圖像,而結合。

@Override  
public void bindView(View view, Context context, Cursor cursor) {    
    // get the views from the row   
    TextView name = (TextView) view.findViewById(R.id.txtNome);   
    TextView tags = (TextView) view.findViewById(R.id.txtTags);   
    ImageView img = (ImageView) view.findViewById(R.id.figura);   
    //asign the values   
    name.setText(cursor.getString(4));    
    tags.setText(cursor.getString(3));    
    name.setClickable(true);   
    tags.setClickable(true);   
    img.setClickable(true); 

    name.setOnClickListener(new OnClickListener()) { 
     public void onClick(View v) { 
      // code for performing action on click 
     } 
    }); 

    img.setOnClickListener(new OnClickListener()) { 
     public void onClick(View v) { 
      // code for performing action on click 
     } 
    }); 

} 
+0

這個伎倆!謝謝!!!! – 2012-03-12 12:35:11

3

你需要檢查,如果你的行佈局和視圖,您在getView充氣無法點擊,而且可成爲焦點。

+0

你好,我的朋友。謝謝回答。是的,我所有的商品都是可點擊和可聚焦的=「真」。有任何想法嗎? =) – 2012-03-12 04:58:15

+1

更改這些項目clciable = false;因爲當你點擊這些項目時你聽不到事件 – jeet 2012-03-12 04:59:57

0

您的均碼是在列表視圖對的,也許另一種觀點,你可以」 t觸列表視圖。

+0

我不這麼認爲,因爲我可以滾動瀏覽ListView,所以看起來我可以觸摸它。 – 2012-03-12 05:03:04

+0

你好:這個鏈接[listview演示](http://bigcateasymorse.googlecode.com/svn/trunk/androidlistviewdemo0.1/)是一個列表演示。我認爲你是適配器代碼有一些錯誤。你應該使用getView方法替換bindview和newView方法。 – 2012-03-12 05:24:01

相關問題