Android 如何选中单击图像时的复选框?
我已经创建了一个gridview,并在其中添加了一个复选框。单击复选框grid view项目,即带有文本视图的图像视图,即可选中该项目 但我想勾选网格视图项点击时的复选框 这是我的主要活动Android 如何选中单击图像时的复选框?,android,Android,我已经创建了一个gridview,并在其中添加了一个复选框。单击复选框grid view项目,即带有文本视图的图像视图,即可选中该项目 但我想勾选网格视图项点击时的复选框 这是我的主要活动 public class MainActivity extends Activity { GridView gridview; @Override protected void onCreate(Bundle savedInsta
public class MainActivity extends Activity {
GridView gridview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridview = (GridView) findViewById(R.id.mainGrid);
gridview.setAdapter(new ImageAdapter(MainActivity.this));
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
// TODO Auto-generated method stub
//
//
ImageAdapter.holder.ItemCheck.setId(position);
ImageAdapter.holder.ItemCheck.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//ImageAdapter.holder.ItemCheck.setChecked(true);
Toast.makeText(MainActivity.this, "Itemclicked" ,Toast.LENGTH_LONG).show();
}
});
Toast.makeText(
MainActivity.this, "Itemclicked", Toast.LENGTH_SHORT).show();
}
});
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Gridview.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/gridlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<GridView
android:id="@+id/mainGrid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:horizontalSpacing="0dp"
android:numColumns="3"
android:clickable="true"
android:stretchMode="columnWidth"
android:verticalSpacing="0dp" >
</GridView>
</LinearLayout>
griditems.xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridItem"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:orientation="vertical" >
<ImageView
android:id="@+id/grid_item_image_OnTap"
android:layout_width="100dp"
android:layout_height="100dp" >
</ImageView>
<TextView
android:id="@+id/grid_item_text_onTap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:text="TextView"
android:textColor="@android:color/black" >
</TextView>
<CheckBox
android:id="@+id/itemCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:button="@drawable/custom_checkbox"
android:checked="true"
android:visibility="visible"
android:focusable="true" />
</RelativeLayout>
请推荐我。我是android新手,我被困在这里了
谢谢
我想选中网格视图项目点击时的复选框
您可以使用onItemClick
方法的第二个参数来执行此操作,如下所示:
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
CheckedTextView check = (CheckedTextView) view;
check.setChecked(!check.isChecked());
boolean click = !check.isChecked();
check.setChecked(click);
if (click) {
//write what you want whenever click a checkbox
}
}
@覆盖
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
CheckedTextView检查=(CheckedTextView)视图;
check.setChecked(!check.isChecked());
布尔单击=!check.isChecked();
check.setChecked(单击);
如果(单击){
//每当单击复选框时,写下所需内容
}
}
谢谢….正在工作..但是如果我想在单击网格项时取消选中它,那么我应该做什么…如果你想取消选中复选框,那么使用if(itemcheck.isChecked()){itemcheck.setChecked(true);}否则{itemcheck.setChecked(false);}
一个较短的方法是itemcheck.setChecked(!itemcheck.isChecked())
)
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
CheckedTextView check = (CheckedTextView) view;
check.setChecked(!check.isChecked());
boolean click = !check.isChecked();
check.setChecked(click);
if (click) {
//write what you want whenever click a checkbox
}
}