最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android利用GridView實現(xiàn)單選功能

 更新時間:2017年02月24日 11:09:27   作者:段煉Android  
這篇文章主要為大家詳細介紹了Android利用GridView實現(xiàn)單選功能的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

先看看GridView實現(xiàn)單選效果

如果是你需要的,你可以繼續(xù)往下看了

實現(xiàn)起來比較簡單,直接上代碼

主Activity的布局,一個Button用來跳轉(zhuǎn)到篩選Activity一個TextView用來顯示篩選后的到的結(jié)果

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.duanlian.gridviewsingleselectordomo.MainActivity">

 <Button
  android:layout_width="match_parent"
  android:layout_height="50dp"
  android:onClick="buttonClick"
  android:text="去篩選"/>

 <TextView
  android:id="@+id/tv_result"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="30dp"
  android:textColor="@color/colorAccent"
  android:layout_centerInParent="true"
  android:text="篩選結(jié)果"/>
</RelativeLayout>

MainActivity你的代碼邏輯,注釋已經(jīng)加上

package com.duanlian.gridviewsingleselectordomo;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
 private TextView mTextView;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  mTextView = (TextView) findViewById(R.id.tv_result);
 }

 /**
  * button的點擊監(jiān)聽
  * @param view
  */
 public void buttonClick(View view) {
  //跳轉(zhuǎn)到篩選的activity
  Intent intent = new Intent(MainActivity.this, SingleSelectorActivity.class);
  //通過帶返回值的跳轉(zhuǎn)來的到下一個頁面帶過來的值
  startActivityForResult(intent,888);
 }

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if (requestCode == 888 && resultCode == 999) {
   //拿到上一個頁面finish后帶過來的值
   String pos = data.getStringExtra("pos");
   mTextView.setText(pos);
  }


 }
}

然后就是篩選Activity,布局就一個GridView用來顯示待選項,
一個Button用來點擊返回主Activity并且把選擇的值帶過去

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_single_selector"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.duanlian.gridviewsingleselectordomo.SingleSelectorActivity">
<Button
 android:id="@+id/button"
 android:layout_width="match_parent"
 android:layout_height="50dp"
 android:onClick="buttonFinish"
 android:text="選擇完成"/>
 <GridView
  android:id="@+id/gridView"
  android:layout_below="@+id/button"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:columnWidth="80dp"
  android:horizontalSpacing="5dp"
  android:verticalSpacing="10dp"
  android:numColumns="auto_fit"/>
</RelativeLayout>

然后就是篩選邏輯

package com.duanlian.gridviewsingleselectordomo;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;

import java.util.ArrayList;
import java.util.List;

public class SingleSelectorActivity extends AppCompatActivity {

 private GridView mGridView;
 private List<String> mList;
 private GridViewAdapter mAdapter;
 int selectorPosition = 0;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_single_selector);
  initView();
 }

 private void initView() {
  mGridView = (GridView) findViewById(R.id.gridView);
  //添加數(shù)據(jù)
  mList = new ArrayList<>();
  for (int i = 0; i < 100; i++) {
   mList.add("第 " + i + " 個");
  }
  mAdapter = new GridViewAdapter(this, mList);
  mGridView.setAdapter(mAdapter);
  //gridView的點擊事件
  mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //把點擊的position傳遞到adapter里面去
    mAdapter.changeState(position);
    selectorPosition = position;
   }
  });
 }

 /**
  * button的點擊監(jiān)聽
  *
  * @param view
  */
 public void buttonFinish(View view) {
  Intent intent = new Intent();
  intent.putExtra("pos", "第 " + selectorPosition + " 個");
  setResult(999, intent);
  finish();
 }
}

主要的狀態(tài)改變還是在Adapter里面

package com.duanlian.gridviewsingleselectordomo;

import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.RelativeLayout;
import android.widget.TextView;

import java.util.List;

/**
 * gridView的adapter
 */

public class GridViewAdapter extends BaseAdapter {
 private Context mContext;
 private List<String> mList;
 private int selectorPosition;

 public GridViewAdapter(Context context, List<String> mList) {
  this.mContext = context;
  this.mList = mList;

 }

 @Override
 public int getCount() {
  return mList != null ? mList.size() : 0;
 }

 @Override
 public Object getItem(int position) {
  return mList != null ? mList.get(position) : null;
 }

 @Override
 public long getItemId(int position) {
  return mList != null ? position : 0;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  convertView = View.inflate(mContext, R.layout.item_gridview, null);
  RelativeLayout mRelativeLayout = (RelativeLayout) convertView.findViewById(R.id.ll);
  TextView textView = (TextView) convertView.findViewById(R.id.tv);
  textView.setText(mList.get(position));
  //如果當前的position等于傳過來點擊的position,就去改變他的狀態(tài)
  if (selectorPosition == position) {
   mRelativeLayout.setBackgroundResource(R.drawable.grid_shap_two);
   textView.setTextColor(Color.parseColor("#FF4081"));
  } else {
   //其他的恢復(fù)原來的狀態(tài)
   mRelativeLayout.setBackgroundResource(R.drawable.grid_shap_one);
   textView.setTextColor(Color.parseColor("#3F51B5"));
  }
  return convertView;
 }


 public void changeState(int pos) {
  selectorPosition = pos;
  notifyDataSetChanged();

 }
}

還有item布局

<?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="wrap_content"
 >

 <RelativeLayout
  android:id="@+id/ll"
  android:layout_width="100dp"
  android:layout_height="32dp"
  android:layout_centerInParent="true"
  android:layout_margin="5dp"
  android:background="@drawable/grid_shap_one"
  >

  <TextView
   android:id="@+id/tv"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_centerHorizontal="true"
   android:ellipsize="none"
   android:gravity="center"
   android:singleLine="true"
   android:text="英超"
   android:maxLength="7"
   android:textColor="@color/colorPrimary"
   android:textSize="13sp"/>
 </RelativeLayout>
</RelativeLayout>

如果你想點擊跳轉(zhuǎn)到篩選Activity且待篩選的按鈕中,顯示你之前選擇后的那個按鈕狀態(tài)是選中狀態(tài),其實也很簡單,只要你把你選中后的position緩存下來,點進去到篩選Activity,實例化Adapter后調(diào)用 mAdapter.changeState(position);把你需要改變狀態(tài)的按鈕的position傳遞過去就行了

其他的小細節(jié)請下載demo

點擊下載demo

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android 使用幀動畫內(nèi)存溢出解決方案

    Android 使用幀動畫內(nèi)存溢出解決方案

    這篇文章主要介紹了Android 使用幀動畫內(nèi)存溢出解決方案的相關(guān)資料,這里提供了詳細的解決辦法,具有參考價值,需要的朋友可以參考下
    2016-12-12
  • Android 下調(diào)試手機截屏的方法

    Android 下調(diào)試手機截屏的方法

    這篇文章主要介紹了Android 下調(diào)試手機截屏的方法的相關(guān)資料,希望通過本文大家能掌握這樣的功能,需要的朋友可以參考下
    2017-09-09
  • 基于Android AIDL進程間通信接口使用介紹

    基于Android AIDL進程間通信接口使用介紹

    本篇文章小編為大家介紹,基于Android AIDL進程間通信接口使用介紹。需要的朋友參考下
    2013-04-04
  • android adb實用命令小結(jié)

    android adb實用命令小結(jié)

    adb對于Android程序員來說在日常的工作中使用頻率很高,現(xiàn)將自己工作中常用的adb命令總結(jié)一下備忘,方便查詢,也供大家參考
    2017-04-04
  • Android重力傳感器實現(xiàn)滾動的彈球

    Android重力傳感器實現(xiàn)滾動的彈球

    所謂傳感器能夠探測如光、熱、溫度、重力、方向 等等的功能,本文給大家介紹Android傳感器應(yīng)用之重力傳感器實現(xiàn)滾動的彈球,對android重力傳感器相關(guān)知識感興趣的朋友一起看看吧
    2015-12-12
  • Android GPS定位測試(附效果圖和示例)

    Android GPS定位測試(附效果圖和示例)

    本人做了GPS相關(guān)的嵌入式軟件已經(jīng)幾年了,所以說起要做個測試GPS定位模塊的程序,第一反應(yīng)就是串口讀取GPS模塊的數(shù)據(jù),然后解析GPS的NMEA格式數(shù)據(jù)
    2013-07-07
  • 基于adbkit的android設(shè)備管理(精簡版stf)

    基于adbkit的android設(shè)備管理(精簡版stf)

    這篇文章主要為大家介紹了基于adbkit的android設(shè)備管理(精簡版stf)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Android實現(xiàn)屏幕手寫簽名

    Android實現(xiàn)屏幕手寫簽名

    這篇文章主要為大家詳細介紹了Android實現(xiàn)屏幕手寫簽名,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Android WebView控件基本使用示例

    Android WebView控件基本使用示例

    大家好,本篇文章主要講的是Android WebView控件基本使用示例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Android tabLayout+recyclerView實現(xiàn)錨點定位的示例

    Android tabLayout+recyclerView實現(xiàn)錨點定位的示例

    這篇文章主要介紹了Android tabLayout+recyclerView實現(xiàn)錨點定位的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08

最新評論

华池县| 呼图壁县| 察哈| 陕西省| 玉山县| 徐闻县| 马关县| 乌兰县| 伊宁市| 普安县| 博罗县| 嘉定区| 体育| 伽师县| 广南县| 惠来县| 重庆市| 化州市| 东港市| 盐池县| 德保县| 铜鼓县| 理塘县| 唐河县| 佛教| 辰溪县| 泽州县| 凤山县| 朝阳区| 资源县| 邳州市| 贡嘎县| 大丰市| 巴塘县| 高雄县| 许昌市| 和林格尔县| 岢岚县| 清流县| 揭阳市| 波密县|