【发布时间】:2018-02-20 13:59:29
【问题描述】:
我在我的应用程序中设置了CardView。卡片上有ImageView。我在ImageView 上设置了onClickListener。但是在单击两次ImageView 后执行操作。
这是CardView的代码:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/assign"
android:layout_margin="7dp"
android:padding="15dp"
android:layout_width="70dp"
android:background="@drawable/circle"
android:layout_height="70dp"
android:src="@drawable/assign" />
<TextView
android:text="Assign Table"
android:focusableInTouchMode="true"
android:id="@+id/textAssignTable"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_marginTop="70dp"
android:layout_gravity="center"
android:id="@+id/clear"
android:src="@drawable/clear"
android:layout_width="25dp"
android:layout_height="25dp" />
</LinearLayout>
这是为ImageView设置OnCLickListener的代码。
assign.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tag = "";
fm = getFragmentManager();
tx = fm.beginTransaction();
AssignTable table=new AssignTable();
tx.replace(R.id.frame, table, tag);
//tx.addToBackStack(tag);
tx.commit();
}
});
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tag = "";
fm = getFragmentManager();
fm.popBackStack();
tx = fm.beginTransaction();
tx.replace(R.id.frame, chooseTab, tag);
//tx.addToBackStack(tag);
tx.commit();
}
});
这是OnClickListener 的代码SwipeCardOnClick
@Override
public void onItemClick(View view, int i)
{
clear=(ImageView)view.findViewById(R.id.clear);
phone=(TextView)view.findViewById(R.id.phone);
assignTable=(ImageView)view.findViewById(R.id.assignTable);
textAssignTable=(TextView)view.findViewById(R.id.textAssignTable);
textAssignTable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tag = "";
fm = getFragmentManager();
tx = fm.beginTransaction();
AssignTable table=new AssignTable();
tx.replace(R.id.frame, table, tag);
//tx.addToBackStack(tag);
tx.commit();
}
});
assignTable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tag = "";
fm = getFragmentManager();
tx = fm.beginTransaction();
AssignTable table=new AssignTable();
tx.replace(R.id.frame, table, tag);
//tx.addToBackStack(tag);
tx.commit();
}
});
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tag = "";
fm = getFragmentManager();
fm.popBackStack();
tx = fm.beginTransaction();
tx.replace(R.id.frame, chooseTab, tag);
//tx.addToBackStack(tag);
tx.commit();
}
});
【问题讨论】:
-
这是在物理设备还是模拟器上?
-
物理设备
-
是否清晰并指定为矢量可绘制图像?
-
没有。我取自 Drawables
-
试过这个吗?将
android:clickable="true"android:focusable="true"设置为 Imageview 并将android:clickable="false"android:focusable="false"设置为 CardView
标签: android imageview onclicklistener cardview