GridView
来源:互联网 发布:java关闭线程的方法 编辑:程序博客网 时间:2024/04/30 15:03
Gridview控件练习
- 使用GridView控件布局表情包,实现EditText控件获取图片,点击Button按钮后,将EditText获取的信息传递到TextView
package com.example.gridview;import java.util.ArrayList;import java.util.HashMap;import android.os.Bundle;import android.app.Activity;import android.text.Spannable;import android.text.SpannableString;import android.text.style.ImageSpan;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.GridView;import android.widget.SimpleAdapter;import android.widget.TextView;public class MainActivity extends Activity { private TextView textview; private EditText edittext; private Button button; private GridView gridview; private ArrayList<HashMap<String, Object>> datalist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textview=(TextView) findViewById(R.id.textview); edittext=(EditText) findViewById(R.id.edt_text); button=(Button) findViewById(R.id.btnId); gridview=(GridView) findViewById(R.id.grdviewId); initMsgpic(); //使用 SimpleAdapter 来布局GridView控件里的内容 SimpleAdapter simpleadpater=new SimpleAdapter(this, datalist, R.layout.emoticon, new String[]{"image","text"}, new int[]{R.id.imageId,R.id.imageText}); gridview.setAdapter(simpleadpater); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub textview.setText(edittext.getText()); edittext.setText(""); } }); gridview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long arg3) { // TODO Auto-generated method stub System.out.println("d点击了"+position); //获取GridView中图片ID int ID=(Integer) datalist.get(position).get("image"); String text=(String) datalist.get(position).get("text"); //ImageSpan可以讲图片类型的数据直接显示在EditText控件之中 //该控件将图片插入到edittext控件中 ImageSpan imagespan=new ImageSpan(MainActivity.this,ID); //SpanableString主要是将图片下的字符与图片进行一一对应 SpannableString spanStr=new SpannableString(text); //设置关联 /*参数一:关联图像 * 参数二:从spanstr中的哪个字符开始关联 * 参数三:关联到spanstr中的哪个字符 * 参数四:关联的类型《只关联字符的范围》 * */ spanStr.setSpan(imagespan, 0, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //将spanstr追加到EditText控件中 edittext.append(spanStr); } }); } public void initMsgpic(){ datalist=new ArrayList<HashMap<String,Object>>(); HashMap<String, Object> hashmap=new HashMap<String, Object>(); hashmap.put("image", R.drawable.pic1); hashmap.put("text", "<emom1>"); datalist.add(hashmap); hashmap=new HashMap<String, Object>(); hashmap.put("image", R.drawable.pic2); hashmap.put("text", "<emom1>"); datalist.add(hashmap); hashmap.put("image", R.drawable.pic3); hashmap.put("text", "<emom1>"); datalist.add(hashmap); hashmap.put("image", R.drawable.pic4); hashmap.put("text", "<emom1>"); datalist.add(hashmap); hashmap.put("image", R.drawable.pic5); hashmap.put("text", "<emom1>"); datalist.add(hashmap); hashmap.put("image", R.drawable.pic6); hashmap.put("text", "<emom1>"); datalist.add(hashmap); } @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; }}
activity-main.xml
<LinearLayout 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:orientation="vertical" tools:context=".MainActivity" > <TextView android:id="@+id/textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="hell" /> <EditText android:id="@+id/edt_text" android:layout_height="wrap_content" android:layout_width="match_parent" android:hint="要获取的"/> <Button android:id="@+id/btnId" android:layout_height="wrap_content" android:layout_width="match_parent" android:text="Send"/> <GridView android:id="@+id/grdviewId" android:layout_height="wrap_content" android:layout_width="match_parent" android:numColumns="4"></GridView></LinearLayout>
emoticon.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/imageId" android:layout_height="wrap_content" android:layout_width="wrap_content" android:adjustViewBounds="true" android:maxWidth="75dp" android:maxHeight="75dp" android:src="@drawable/ic_launcher" android:layout_gravity="center_horizontal"/><TextView android:id="@+id/imageText" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center_horizontal" android:text="hell"/></LinearLayout>
1 0
- GridView
- gridview
- GridView
- gridview
- GridView
- GridView
- gridview
- GridView
- GridView
- gridview
- GridView
- GridView
- Gridview
- GridView
- GridView
- gridview
- GridView
- GridView
- 优秀Android博客大全,整理了国内外大神博客/Github地址,是学习Android进阶的首选[转]
- java求圆的面积
- 集成VR播放器--虚拟现实浪潮的一舟: UtoVR
- php文件下载
- IllegalArgumentException at org.springframework.asm.ClassReader when initializing Spring context
- GridView
- 12306购票时被拦截的原因
- 天地图河池,天地图巴马
- TS 类型备忘 音视频格式
- C++多态以及其注意事项
- mysql存储引擎比较
- Python 图像库包
- 【C语言】交换两个数
- Linux常见基础命令总结(二)