2017-04-17 86 views
0

這是我第一次嘗試提出問題。我是android的初學者。當我以簡單的方式使用圖像OnClickListener()時,它正在工作,但是當我使用gridView其中有一個imageView和一個圖像點擊TextView時,我想跳到一個新的活動。 我要做的只是打電話的GridView OnItemClickListener(),並跳轉到其正在工作,我在下面爲什麼Image OnClickListener()在點擊沒有響應時

gridView = (GridView) findViewById(R.id.gridview1); 
gridView.setAdapter(new Adapter1(this)); 


gridView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 
     Intent sendID_intent = new Intent(Activtiy1.this, Activity2.class); 
      startActivity(sendID_intent); 


     } 
    }); 

另一個活動,其中適配器1延伸BaseAdapter其中圖像是負載使用的畢加索庫,該庫還有唯一的問題是圖像點擊事件無法正常工作。

public class Adapter1 extends BaseAdapter { 
private Context mC1; 

ArrayList<View> viewList = new ArrayList<View>(); 

public Adapter1(Context context) { 
    mC1 = context; 
} 


@Override 
public int getCount() { 
    return normlSearchList.size(); 
} 

@Override 
public Object getItem(int position) { 
    return normlSearchList.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 
@SuppressLint("ViewHolder") 
@Override 
public View getView(final int position, View convertView, 
        ViewGroup parent) { 
    View view1=convertView; 

    if ((position + 1) > viewList.size()) { 

     LayoutInflater inflater = (LayoutInflater) mC1.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view1 = inflater.inflate(R.layout.view_grid,null); 
     ImageView imageView = (ImageView) view1.findViewById(R.id.iv_galleryb); 
     TextView textView = (TextView) view1.findViewById(R.id.tv_name); 

     textView.setText(normlSearchList.get(position).getPost_title()); 

     final String txtID; 
     String img_url = normlSearchList.get(position).getImage(); 
     Picasso.with(mContext) 
       .load(img_url) 
       .placeholder(R.drawable.it_logo_td) 
       .error(R.drawable.it_logo_td) 
       .noFade().resize(150, 150) 
       .centerCrop() 
       .into(imageView); 
     viewList.add(view1); 


     imageView.setOnClickListener(new OnClickListener() { 


      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(mContext, Activity2.class); 
       mC1.startActivity(intent); 
      } 
     }); 
    } 

    return view1; 
} 
} 

我的佈局文件只包含其保持的LinearLayout用於顯示數據一個TextView未找到的消息,如果沒有數據被發現,一個GridView

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:layout_margin="5dp" 
> 
    <LinearLayout 
     android:id="@+id/layout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:orientation="horizontal" > 
................... 
    </LinearLayout> 
<TextView 
    android:text="" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/textView" 
    android:gravity="center_horizontal" 
    android:visibility="invisible" 
    /> 
<GridView 
    android:id="@+id/gridview1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@+id/layout1" 
    android:numColumns="3" 
    android:columnWidth="200dp" 
    android:gravity="center" 
    android:stretchMode="columnWidth" 
    /> 

我viewgrid 相對佈局.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="100dp" 
    android:layout_height="80dp" 
    android:descendantFocusability="afterDescendants"> 
<ImageView 
    android:id="@+id/iv_galleryb" 
    android:layout_width="100dp" 
    android:layout_height="80dp" 
    android:clickable="true" 
    android:scaleType="fitXY" 
    /> 

<TextView 
android:id="@+id/tv_name" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_below="@+id/iv_galleryb" 
/> 

我希望我能讓我的問題清楚。

回答

1

我會避免使用GridView內的可點擊視圖,而不是使用RecyclerView。由於GridView實現了onItemClick,它可能與ImageView可點擊衝突。

反正嘗試<ImageView />

+0

添加android:focusable="true"只需更換'機器人:可點擊= 「真」 與''機器人:可調焦= 「真」'但仍然沒有工作。 – Chris

+0

任何其他的事情,我可以嘗試使它工作 – Chris

+0

嘗試chagen'android:descendantFocusability =「afterDescendants」' – betorcs