這次的Demo實(shí)現(xiàn)的是 通過BaseAdapter將圖片和問題傳給GridView ,通過點(diǎn)擊GridView準(zhǔn)確獲取第幾個(gè)
?
重點(diǎn) 1.如何將圖片和文字通過BaseAdapter傳給GridView
????????2.如何通過點(diǎn)擊GridView進(jìn)行下一步操作
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、對于一個(gè)沒有被載入或者想要?jiǎng)討B(tài)載入的界面, 都需要使用inflate來載入. // // 2、對于一個(gè)已經(jīng)載入的Activity, 就可以使用實(shí)現(xiàn)了這個(gè)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); //關(guān)聯(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; //初始化時(shí)加載頁面用到的 if里的東西 if (convertView == null) { rLayout = (RelativeLayout) mInflater.inflate(R.layout.new_file, parent, false); } else { rLayout = (RelativeLayout) convertView; } String item = (String) getItem(position); //設(shè)置控件取回的數(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; } //本次重點(diǎn) 準(zhǔn)確返回?cái)?shù)據(jù)位置的關(guān)鍵 必須在getItemID設(shè)置對的位置選項(xiàng)默認(rèn)從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控件的其中一個(gè)做出的響應(yīng) mGridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position,long id) { Toast.makeText(MainActivity.this, "你選擇了" + (position + 1) + " 號(hào)圖片", 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>
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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