亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android之GridView延展

系統(tǒng) 1835 0

本次的Demo是通過GridView展示一個List,通過2個按鈕實(shí)現(xiàn)GridView從視覺上的增加和減少。

為了方便增加和減少,本次用的儲存結(jié)構(gòu)是List。與String在BaseAdapter一樣,只需要更改BaseAdapter的2個基本函數(shù)分別是 getItem(),getCount()

       
public Object getItem(int position) {
        return  mad[position];
	}
public int getCount() {
				
        return mad.length;
	}
    

?

?這是String的 BaseAdapter

      @Override
public Object getItem(int position) {
	// TODO Auto-generated method stub
	return mList.get(position);
                   }
		
@Override
	public int getCount() {
	// TODO Auto-generated method stub
	return mList.size();
                   }
    
      ?
    

?這是List的BaseAdapter

?

?

?

下邊放上整個代碼

      package com.example.onclickgridview;

import java.security.acl.LastOwnerException;
import java.util.ArrayList;
import java.util.List;

import android.R.integer;
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.Button;
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, 就可以使用實(shí)現(xiàn)了這個Activiyt的的findViewById方法來獲得其中的界面元素. 
    private LayoutInflater mInflater;
	//創(chuàng)建初始化數(shù)據(jù)源
	private String[] mad = {"1","2","3","4","5","6","7","8","9"};
	
	private List<String> mList;
	//聲明控件
	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)	
    Button btnAdd = (Button) findViewById(R.id.button1);	
    
    Button btnDel = (Button) findViewById(R.id.button2);	
		
	mGridView = (GridView) findViewById(R.id.gridView1);	
	
	mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	
	mList = new ArrayList<String>();
	
	for(int i = 0; i<mad.length;  i++){
		
		mList.add(mad[i]);
    
	}
	
	
	//新建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è)置控件取回的數(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)確返回數(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 mList.get(position);
		}
		
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return mList.size();
		}
	};
	
	mGridView.setAdapter((ListAdapter) mAdapter);
	//監(jiān)聽事件 對于按下gridView控件的其中一個做出的響應(yīng)
	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();
			
		}
		
		
	});
	//監(jiān)聽2個按鈕
	btnAdd.setOnClickListener(new Button.OnClickListener(){

		@Override
		public void onClick(View v) {
			//通過對list的長度在選擇累計增加的數(shù)值
			int j= mList.size();
			//這里用到了類型轉(zhuǎn)換
			String s = Integer.toString(j+1);
			mList.add(s);
			mGridView.setAdapter((ListAdapter) mAdapter);
		}
		
		
		
		
	});
	
	btnDel.setOnClickListener(new Button.OnClickListener(){

		@Override
		public void onClick(View v) {
			//通過對list的長度在選擇累計減少的數(shù)值
			int z= mList.size();
			//這里用到了類型轉(zhuǎn)換
			String t = Integer.toString(z);
			mList.remove(t);
			mGridView.setAdapter((ListAdapter) mAdapter);
		}
		
		
		
		
	});
	
	
	
	
	
	
	}
	@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;
	}

}

    

?展示效果

?


Android之GridView延展
?按下Add一次

?
Android之GridView延展
?多次按下Add


Android之GridView延展
?多次按下Delete

?

Android之GridView延展


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 夜夜橹 | 一级毛毛片 | 欧美日韩亚洲精品国产色 | 亚洲精品国产第一综合99久久 | 在线日产一区二区 | 久久久综合香蕉尹人综合网 | 国产福利视频在线 | 国产一区三区二区中文在线 | 青青青国产深夜福利视频 | 亚洲欧洲日韩国产一区二区三区 | 欧美特级毛片a够爽 | 最新中文字幕在线播放 | 黄色片在线免费观看视频 | 亚洲一区国产 | 老司机午夜视频在线观看 | 日本亚洲高清 | 色爱区综合激情五月综合色 | 亚洲你我色| 国产精品美女久久久久 | 国产亚洲欧美ai在线看片 | 在线免费观看一级毛片 | 狠狠色狠狠色综合久久第一次 | 欧美成人免费在线视频 | 国产九九视频在线观看 | 在线欧美精品一区二区三区 | 伊人久久精品亚洲精品一区 | 亚洲国产精品网站久久 | 亚洲国产精品久久久久婷婷软件 | 尤物视频在线免费观看 | 精品综合久久久久久97超人 | 国产欧美日韩精品一区二区三区 | 国产亚洲精品国产一区 | 五月婷婷在线播放 | 99热免费精品 | 久久尹人香蕉国产免费天天 | 9191在线精品播放 | 欧美88| 亚洲狼人综合干 | 夜精品a一区二区三区 | 国产精品27页 | 欧美激情中文字幕一区二区 |