當前位置:首頁 » 安卓系統 » androidgridview事件處理

androidgridview事件處理

發布時間: 2023-03-16 04:30:38

① android中添加了一個GridView,在GridView中的每一個Item中,又有一個按鈕,要給每一個按鈕添加點擊事件

請參考我以前寫的一篇帖子,是給listview的,但好像不能使用button,最好把button換成imageview,反正imageview也是能點擊的。你遇到這個問題是因為你給每一個item設置了事件,然後當你點擊這個item的時候,裡面的button被點中了。解決辦法是繼承view,寫一個自定義的view,重寫他的 setPressed 方法,這個方法裡面判斷它在點中的同時是不是父view也被點中了,如果父view也被點中的話,之間return,否則調用super的setpressed方法。這樣就能使你的子view不在父view點中的時候獲得事件。帖子在http://blog.csdn.net/huihuangui/article/details/6768629

② android使用gridview布局setOnItemClickListener中如何使用OnClickListener按鈕事件

難道setOnItemClickListener不就是GridView的點擊事件?為什麼還要逗祥OnClickListener?難道旅指扒內部還有拆昌布局?

③ android gridview圖片點擊事件設置

首先,應該是OnItemClickListener吧。
這個事件里有4個參鄭飢數,public
void
onItemClick(AdapterView<?>
parent,
View
griditem,
int
position,long
arg3),其中griditem指你點擊的項;position指的是你點擊的項喊源返在gridview數據源中的索引。
如果裂消你想改變原來的圖片,則可以這么做(假設你gridview中item的布局文件里只有一個ImageView):
ImageView
image=(ImageView)griditem;
image.setBackgroundDrawable(R.drawable.newimage);//這里寫新圖片資源名稱

④ android gridview的監聽事件不起作用啊

gridView事件處理不了,那說明代碼寫的有問題了。

1.關於Android事件構成

在Android中,事件主要包括點按、長按、拖拽、滑動等,點按又包括單擊和雙擊,另外還包括單指操作和多指操作。所有這些都構成了Android中的事件響應。總的來說,所有的事件都由如下三個部分作為基礎:

1.按下(ACTION_DOWN)

2.移動(ACTION_MOVE)

3.抬起(ACTION_UP)

所有的操作事件首先必須執行的是按下操作(ACTIONDOWN),之後所有的操作都是以按下操作作為前提,當按下操作完成後,接下來可能是一段移動(ACTIONMOVE)然後抬起(ACTION_UP),或者是按下操作執行完成後沒有移動就直接抬起。這一系列的動作在Android中都可以進行控制。


2.事件的處理API

在View和ViewGroup中都存在dispatchTouchEvent和onTouchEvent方法,但是在ViewGroup中還有一個onInterceptTouchEvent方法,在Android中,所有的事件都是從開始經過傳遞到完成事件的消費,這些方法的返回值就決定了某一事件是否是繼續往下傳,還是被攔截了,或是被消費了。

public boolean dispatchTouchEvent(MotionEvent event)
public boolean onTouchEvent(MotionEvent event)
public boolean onInterceptTouchEvent(MotionEvent event)


3.事件處理API的說明

  1. dispatchTouchEvent方法用於事件的分發,Android中所有的事件都必須經過這個方法的分發,然後決定是自身消費當前事件還是繼續往下分發給子控制項處理。返回true表示不繼續分發,事件沒有被消費。返回false則繼續往下分發,如果是ViewGroup則分發給onInterceptTouchEvent進行判斷是否攔截該事件。

  2. onTouchEvent方法用於事件的處理,返回true表示消費處理當前事件,返回false則不處理,交給子控制項進行繼續分發。

  3. onInterceptTouchEvent是ViewGroup中才有的方法,View中沒有,它的作用是負責事件的攔截,返回true的時候表示攔截當前事件,不繼續往下分發,交給自身的onTouchEvent進行處理。返回false則不攔截,繼續往下傳。

⑤ android gridview 圖片單擊事件 求助

寫監聽就悔氏好了啊。
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
//這裡面的arg2就是喚前喊你和野單擊的圖標是第幾個(第一個 arg2 = 0)
}
}

⑥ 如何設置 android gridview 怎麼設置 , 一些item可以點擊,另外.....

這個要在代碼中進行設置,基本上有兩種方式:

  1. 在GridView所在的 activity(或者fragment)中, 找到該View,監聽點擊事件:


    java">gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
    @Override
    publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){
    //點擊item觸發,進行判斷,如果需要處理點擊,就進行處理,否則,什麼也不做
    if(/*處理點擊條件*/){
    //要做的事
    }
    }
    });
  2. 在自己寫的GridView對應的適配器中(一般繼承於BaseAdapter)的getView中進行判斷,如果是需呀處理的item, 就調用setOnClickListener,並定義相應的點擊事件,否則可以不綁定點擊事件。

⑦ android GridView怎麼實現合並行或者達到同樣的效果

GridView跟ListView都是比較常用的多控制項布局,而GridView更是實現九宮圖的首選!本文就是介紹如何使用GridView實現九宮圖。GridView的用法很多,網上介紹最多的方法就是自己實現一個ImageAdapter繼承BaseAdapter,再供GridView使用,類似這種的方法本文不再重復,本文介紹的GridView用法跟前文ListView的極其類似
本文需要添加/修改3個文件:main.xml、night_item.xml、JAVA源代碼。
main.xml源代碼如下,本身是個GirdView,用於裝載Item:

[xhtml] view plainprint?
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>

介紹一下裡面的某些屬性:
android:numColumns="auto_fit" ,GridView的列數設置為自動
android:columnWidth="90dp",每列的寬度,也就是Item的寬度
android:stretchMode="columnWidth",縮放與列寬大小同步
android:verticalSpacing="10dp",兩行之間的邊距,如:行一(NO.0~NO.2)與行二(NO.3~NO.5)間距為10dp
android:horizontalSpacing="10dp",兩列之間的邊距。

接下來介紹 night_item.xml,這個XML跟前面ListView的ImageItem.xml很類似:

[xhtml] view plainprint?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="4dip" android:layout_width="fill_parent">
<ImageView
android:layout_height="wrap_content"
android:id="@+id/ItemImage"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true">
</ImageView>
<TextView
android:layout_width="wrap_content"
android:layout_below="@+id/ItemImage"
android:layout_height="wrap_content"
android:text="TextView01"
android:layout_centerHorizontal="true"
android:id="@+id/ItemText">
</TextView>
</RelativeLayout>

最後就是JAVA的源代碼了,也跟前面的ListView的JAVA源代碼很類似,不過多了「選中」的事件處理:

[java] view plainprint?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);

//生成動態數組,並且轉入數據
ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<10;i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.icon);//添加圖像資源的ID
map.put("ItemText", "NO."+String.valueOf(i));//按序號做ItemText
lstImageItem.add(map);
}
//生成適配器的ImageItem <====> 動態數組的元素,兩者一一對應
SimpleAdapter saImageItems = new SimpleAdapter(this, //沒什麼解釋
lstImageItem,//數據來源
R.layout.night_item,//night_item的XML實現

//動態數組與ImageItem對應的子項
new String[] {"ItemImage","ItemText"},

//ImageItem的XML文件裡面的一個ImageView,兩個TextView ID
new int[] {R.id.ItemImage,R.id.ItemText});
//添加並且顯示
gridview.setAdapter(saImageItems);
//添加消息處理
gridview.setOnItemClickListener(new ItemClickListener());
}

//當AdapterView被單擊(觸摸屏或者鍵盤),則返回的Item單擊事件
class ItemClickListener implements OnItemClickListener
{
public void onItemClick(AdapterView<?> arg0,//The AdapterView where the click happened
View arg1,//The view within the AdapterView that was clicked
int arg2,//The position of the view in the adapter
long arg3//The row id of the item that was clicked
) {
//在本例中arg2=arg3
HashMap<String, Object> item=(HashMap<String, Object>) arg0.getItemAtPosition(arg2);
//顯示所選Item的ItemText
setTitle((String)item.get("ItemText"));
}

}

⑧ android的gridview 事件監聽報錯

你的item沒有獲取到,item為NULL。然後在下面你用item.get方法就報空指針異常了。

⑨ 如何模擬android 中GridView的選中item的事件

gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){
//dosomething
}
});

⑩ android gridview 用button怎麼每點擊事件

可以自定義adpter,adpter裡面的getView()方法里不是會初始化button嗎,然後再嘩做直接調用該button的實例,button.setOnClickListener(),在其監聽實踐中處理你要處理的旦蘆激東東,
public View getView(int position, View convertView, ViewGroup parent) {

Button button = findViewById.....

button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
/模襪/處理事件
}
});

}

熱點內容
伺服器映射器怎麼固定ip 發布:2025-05-10 06:35:31 瀏覽:637
藍牙鍵盤如何輸入電腦密碼 發布:2025-05-10 06:32:33 瀏覽:275
北京php培訓機構 發布:2025-05-10 06:28:20 瀏覽:879
php在線狀態 發布:2025-05-10 06:22:23 瀏覽:260
加密技術的優缺點 發布:2025-05-10 06:22:18 瀏覽:527
messagelinux 發布:2025-05-10 06:15:50 瀏覽:818
如何找回微信號碼登錄密碼 發布:2025-05-10 06:14:22 瀏覽:153
csv解壓 發布:2025-05-10 06:06:02 瀏覽:762
小米系統存儲和內存設備 發布:2025-05-10 06:00:56 瀏覽:693
深圳ug編程培訓 發布:2025-05-10 05:54:27 瀏覽:663