當前位置:首頁 » 安卓系統 » androidgridview設置選中

androidgridview設置選中

發布時間: 2023-01-25 14:22:29

㈠ 如何讓android的GridView中顯示的元素只選擇一行中的某一個而改變資源文件。

GridView有一個setOnItemClickLintener()方法,可以獲取當前點擊的item,把這個item的位置傳給adapter,在adapter的getView()中,修改這個item的背景什麼的

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

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

㈢ Android 如何使GridView里的值處於選中狀態,因為每次點擊都是閃一下就過了,想選中那個值

你點擊了,就是響應了當前的item,那麼你所說的一閃而過只是說顯示效果上一閃而過,那麼你點擊之後,將該item的背景置換成一個有明顯標志的選中背景就行。。

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

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

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


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

㈤ Android 如圖所示。gridview怎麼實現單選,且item選中時。item里的文字顏色改變

最好的方法是在代碼中去設置一個變數,在適配器中獲取這個變數,從而判斷是否選中

㈥ android怎麼讓listview的checkbox單選

還是先來看看是不是你想要的效果:

不廢話,直接上代碼,很簡單,代碼里都有注釋

單選

public class SingleActivity extends AppCompatActivity {

private ListView listView;

private ArrayList<String> groups;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_single);

listView = (ListView) this.findViewById(R.id.lvGroup);

groups = new ArrayList<String>();

groups.add("11");

groups.add("22");

groups.add("33");

groups.add("44");

groups.add("55");

groups.add("66");

groups.add("77");

AdapterView.OnItemClickListener listItemClickListener = new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

// 取得ViewHolder對象,這樣就省去了通過層層的findViewById去實例化我們需要的cb實例的步驟

SingleAdapter.ViewHolder viewHolder = (SingleAdapter.ViewHolder) view.getTag();

viewHolder.cb.toggle();// 把CheckBox的選中狀態改為當前狀態的反,gridview確保是單一選中

}

};

SingleAdapter adapter = new SingleAdapter(this, groups);

listView.setAdapter(adapter);

listView.setOnItemClickListener(listItemClickListener);

}

}

Adapter:

public class SingleAdapter extends BaseAdapter {

private Activity activity;//上下文

private ArrayList<String> list;

private LayoutInflater inflater = null;//導入布局

private int temp = -1;

public SingleAdapter(Activity context, ArrayList<String> list) {

this.activity = context;

this.list = list;

inflater = LayoutInflater.from(context);

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

//listview每顯示一行數據,該函數就執行一次

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;

if (convertView == null) {//當第一次載入ListView控制項時 convertView為空

convertView = inflater.inflate(R.layout.group_item_view, null);//所以當ListView控制項沒有滑動時都會執行這條語句

holder = new ViewHolder();

holder.tv = (TextView) convertView.findViewById(R.id.item_tv);

holder.cb = (CheckBox) convertView.findViewById(R.id.item_cb);

convertView.setTag(holder);//為view設置標簽

} else {//取出holder

holder = (ViewHolder) convertView.getTag();

}

//設置list的textview顯示

holder.tv.setTextColor(Color.WHITE);

holder.tv.setText(list.get(position));

// 根據isSelected來設置checkbox的選中狀況

holder.cb.setId(position);//對checkbox的id進行重新設置為當前的position

holder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {

if (isChecked) {//實現checkbox的單選功能,同樣適用於radiobutton

if (temp != -1) {

//找到上次點擊的checkbox,並把它設置為false,對重新選擇時可以將以前的關掉

CheckBox tempCheckBox = (CheckBox) activity.findViewById(temp);

if (tempCheckBox != null)

tempCheckBox.setChecked(false);

}

temp = compoundButton.getId();//保存當前選中的checkbox的id值

}

}

});

if (position == temp)//比對position和當前的temp是否一致

holder.cb.setChecked(true);

else

holder.cb.setChecked(false);

return convertView;

}

public static class ViewHolder {

TextView tv;

CheckBox cb;

}

}

多選:

public class MulActivity extends AppCompatActivity {

private ListView listView;

private ArrayList<String> groups;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_mul);

listView = (ListView) this.findViewById(R.id.list);

groups = new ArrayList<>();

groups.add("11");

groups.add("22");

groups.add("33");

groups.add("44");

groups.add("55");

groups.add("66");

groups.add("77");

AdapterView.OnItemClickListener listItemClickListener = new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position,

long id) {

// 取得ViewHolder對象,這樣就省去了通過層層的findViewById去實例化我們需要的cb實例的步驟

MulAdapter.ViewHolder viewHolder = (MulAdapter.ViewHolder) view.getTag();

viewHolder.cb.toggle();// 把CheckBox的選中狀態改為當前狀態的反,gridview確保是單一選中

MulAdapter.getIsSelected().put(position, viewHolder.cb.isChecked());//將CheckBox的選中狀況記錄下來

}

};

MulAdapter adapter = new MulAdapter(this, groups);

listView.setAdapter(adapter);

listView.setOnItemClickListener(listItemClickListener);

}

}

Adapter:

public class MulAdapter extends BaseAdapter {

private Context context;//上下文

private ArrayList<String> list;

//控制CheckBox選中情況

private static HashMap<Integer, Boolean> isSelected;

private LayoutInflater inflater = null;//導入布局

public MulAdapter(Context context, ArrayList<String> list) {

this.context = context;

this.list = list;

inflater = LayoutInflater.from(context);

isSelected = new HashMap<Integer, Boolean>();

initData();

}

private void initData() {//初始化isSelected的數據

for (int i = 0; i < list.size(); i++) {

getIsSelected().put(i, false);

}

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

//listview每顯示一行數據,該函數就執行一次

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;

if (convertView == null) {//當第一次載入ListView控制項時 convertView為空

convertView = inflater.inflate(R.layout.group_item_view, null);//所以當ListView控制項沒有滑動時都會執行這條語句

holder = new ViewHolder();

holder.tv = (TextView) convertView.findViewById(R.id.item_tv);

holder.cb = (CheckBox) convertView.findViewById(R.id.item_cb);

convertView.setTag(holder);//為view設置標簽

} else {//取出holder

holder = (ViewHolder) convertView.getTag();//the Object stored in this view as a tag

}

//設置list的textview顯示

holder.tv.setTextColor(Color.WHITE);

holder.tv.setText(list.get(position));

// 根據isSelected來設置checkbox的選中狀況

holder.cb.setChecked(getIsSelected().get(position));

return convertView;

}

public static class ViewHolder {

TextView tv;

CheckBox cb;

}

public static HashMap<Integer, Boolean> getIsSelected() {

return isSelected;

}

public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {

MulAdapter.isSelected = isSelected;

}

}

以上所述是給介紹的Android中ListView + CheckBox實現單選、多選效果

㈦ gridview在android2.1中默認選中第一個,2.2中沒有

可以單獨寫一個item點擊事件OnItemClickListener oi = new OnItemClickListener() {
public void onItemClick(android.widget.AdapterView<?> arg0,
android.view.View arg1, int arg2, long arg3) {
};
};
文件設置tag判斷

㈧ android中,如何讓gridview選中的圖片的背景發生改變,並一直顯示

第一種是你你點擊整個imageview時,在她上面加一種效果(比如變亮了)你可以查查灰暗度怎麼實現。表示選中了。
第二種類似:整個布局用framelayout,裡面嵌套兩個imageView。把第二個imageview設置成gone不可見,當點擊第一個imageview時,顯示第二個imageview,並在第二個imageview做特效標示選中。

㈨ 如何設置GridView的選中行

document.getElementById(rowId).style.backgroundColor = '#ff0000';}然後在gridview的rowDataBound中, 添加處理按鍵的事件處理函數和使用滑鼠點擊某行時的選中事件. protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){if (e.Row.RowType == DataControlRowType.DataRow){ e.Row.Attributes.Add("onClick", "MarkRow(" + _i.ToString() + ");");_i++;}}當點某行時,直接選中,然後移動方向鍵則切換不同的選中行; 如果直接按方向鍵,則從第一行開始標識

㈩ android GridView.requestFocusFromTouch()後為什麼setSelection就不好使呢 總是選中第一條, 為什麼

setSelection是設置選擇項,而requestFocusFromTouch等於是模擬了一個touch事件,點擊了girdview,而默認點擊的地方就是第一條,點擊了第一條,焦點以及selection都到第一條了,所以setSelection就沒反應了。

熱點內容
新名圖配置怎麼樣 發布:2024-05-19 09:31:30 瀏覽:94
php獲取子節點 發布:2024-05-19 09:21:18 瀏覽:160
php生成html 發布:2024-05-19 09:20:24 瀏覽:795
keil編譯步驟 發布:2024-05-19 08:58:12 瀏覽:702
ipad有哪些好用的c語言編譯器 發布:2024-05-19 08:41:56 瀏覽:767
征途手游版腳本 發布:2024-05-19 08:38:11 瀏覽:165
安卓咪咕音樂怎麼錄制視頻 發布:2024-05-19 07:56:06 瀏覽:838
如何搞出超大聲的聽聲辨位安卓版 發布:2024-05-19 07:46:21 瀏覽:927
linux安全模式 發布:2024-05-19 07:27:25 瀏覽:176
為什麼安卓手機安裝不了cpk 發布:2024-05-19 07:22:21 瀏覽:313