這次的Demo實現(xiàn)的是 通過BaseAdapter將圖片和問題傳給GridView ,通過點擊GridView準確獲取第幾個
?
重點 1.如何將圖片和文字通過BaseAdapter傳給GridView
????????2.如何通過點擊GridView進行下一步操作
package com.example.onclickgridview; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.Adapter; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.ListAdapter; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { // 作用: // 1、對于一個沒有被載入或者想要動態(tài)載入的界面, 都需要使用inflate來載入. // // 2、對于一個已經(jīng)載入的Activity, 就可以使用實現(xiàn)了這個Activiyt的的findViewById方法來獲得其中的界面元素. private LayoutInflater mInflater; //創(chuàng)建初始化數(shù)據(jù)源 private String[] mad = {"1","2","3","4","5","6","7","8","9"}; //聲明控件 private GridView mGridView; //聲明adpter private Adapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //關聯(lián) mGridView = (GridView) findViewById(R.id.gridView1); mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); //新建BaseAdapter mAdapter = new BaseAdapter() { @Override public View getView(int position, View convertView, ViewGroup parent) { TextView text; ImageView imgview; RelativeLayout rLayout; //初始化時加載頁面用到的 if里的東西 if (convertView == null) { rLayout = (RelativeLayout) mInflater.inflate(R.layout.new_file, parent, false); } else { rLayout = (RelativeLayout) convertView; } String item = (String) getItem(position); //設置控件取回的數(shù)據(jù) text = (TextView) rLayout.findViewById(R.id.TextView2); text.setText(item); imgview = (ImageView) rLayout.findViewById(R.id.ImageView1); imgview.setImageResource(R.drawable.ic_launcher); return rLayout; } //本次重點 準確返回數(shù)據(jù)位置的關鍵 必須在getItemID設置對的位置選項默認從0開始 @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return mad[position]; } @Override public int getCount() { // TODO Auto-generated method stub return mad.length; } }; mGridView.setAdapter((ListAdapter) mAdapter); //監(jiān)聽事件 對于按下gridView控件的其中一個做出的響應 mGridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position,long id) { Toast.makeText(MainActivity.this, "你選擇了" + (position + 1) + " 號圖片", 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; } }
?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" 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" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <GridView android:id="@+id/gridView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="21dp" android:numColumns="3" > </GridView> </RelativeLayout>
?
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
