2011-03-17 49 views
3

嗨,我創建了一個基本的列表視圖,並在其中添加了一個textview和imageview。如何使imageview在列表視圖中點擊

<ImageView 
    android:id="@+id/icon" 
    android:layout_width="50px" 
    android:paddingLeft="2px" 
    android:paddingRight="2px" 
    android:paddingTop="2px" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight = "true" 
    android:src="@drawable/call" 
/> 

我需要做的ImageView點擊,這樣,如果它的一些點擊的動作會發生這樣的新活動opened.Can有人幫助我如何做到這一點。

感謝

回答

4

你必須實現自己的光標適配器,並在你必須重寫getView方法d那麼onclick監聽器設置爲你的形象:

public class SMSimpleCursorAdapter extends SimpleCursorAdapter{ 

    Context context; 
    Activity activity; 
    public SMSimpleCursorAdapter(Context context, int layout, Cursor c, 
      String[] from, int[] to) { 
     super(context, layout, c, from, to); 
     this.context=context; 
     this.activity=(Activity) context; 
    } 


    @Override 
    public View getView(int position, View convertView, ViewGroup parent){ 
     View view = super.getView(position, convertView, parent); 
     long id=getItemId(position); 
     ImageView image= (ImageView)view.findViewById(R.id.icon); 
     image.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 

      } 
     }); 


    } 

} 
1

仙人,

嘗試類似如下:

ImageView myImg= (ImageView) findViewById(R.id.icon); 
myImg.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       //Launch Intent or whatever you want here 
      } 
     }); 
3

使用ImageButton代替:

<ImageButton 
android:id="@+id/icon" 
android:layout_width="50px" 
android:paddingLeft="2px" 
android:paddingRight="2px" 
android:paddingTop="2px" 
android:layout_height="wrap_content" 
android:layout_alignParentRight = "true" 
android:background="@drawable/call" /> 
0

嘗試一下本作的ImageView的:它爲我工作

android:focusable = "false" 
+1

嘿歡迎來到SO!你能擴展你的答案嗎?這肯定會幫助其他人更好地理解如何做到這一點。 – 2012-07-22 05:33:42

1

若要使ImageView點擊就可以設置該屬性android:clickable="true"ImageView。 xml

0

此作品:

ImageView myImg= (ImageView) findViewById(R.id.icon); 
    myImg.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent i = new Intent(YourCurrentActivity.this,YourNextActivity.class); 
       startActivity(i); 
     } 
    }); 
相關問題