ListView
来源:互联网 发布:类似我要当学霸的知乎 编辑:程序博客网 时间:2024/05/27 00:47
那么简单 每次都记不住。
package com.example.hejingzhou.listviewbuttondemo;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.Toast;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { private String TAG = getClass().getSimpleName(); private ListView lvButton; private ArrayList<String> arrayList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lvButton = (ListView)this.findViewById(R.id.listview); arrayList = new ArrayList<String>(); final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayList); lvButton.setAdapter(arrayAdapter); for(int line=0;line<=8;line++){ arrayList.add("LineTable"+line); } lvButton.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.i(TAG, arrayList.get(position)); Log.i(TAG, String.valueOf(arrayAdapter.getItemId(position)));//获取行号 String LineNumber = String.valueOf(arrayAdapter.getItemId(position)+1); Toast.makeText(getApplicationContext(), "你点击的是:" + arrayList.get(position)+" 行号:"+LineNumber, Toast.LENGTH_SHORT).show(); } }); }}
第二种类型
package com.example.hejingzhou.listviewimagebutton;import android.app.AlertDialog;import android.app.ListActivity;import android.content.Context;import android.content.DialogInterface;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends ListActivity { private String TAG= getClass().getSimpleName(); private List<Map<String,Object>> mData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mData = getData(); MyAdapter adapter = new MyAdapter(this); Log.i(TAG, "onCreate创建适配器还没有出错"); setListAdapter(adapter); } private List<Map<String, Object>> getData() { List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); Map<String,Object> map = new HashMap<String,Object>(); map.put("title", "我的名片"); map.put("twoTitle", "副标题"); map.put("image", R.drawable.mymessage); list.add(map); Log.i(TAG, "getData()方法没有出错"); map = new HashMap<String, Object>(); map.put("title", "定时关机"); map.put("twoTitle", ""); map.put("image", R.drawable.time); list.add(map); Log.i(TAG, "getData()方法没有出错"); map = new HashMap<String, Object>(); map.put("title", "搜索数据"); map.put("twoTitle", ""); map.put("image", R.drawable.index); list.add(map); Log.i(TAG, "getData()方法没有出错"); map = new HashMap<String, Object>(); map.put("title", "附近景点"); map.put("twoTitle", ""); map.put("image", R.drawable.view); list.add(map); Log.i(TAG,"getData()方法没有出错"); /** * 如果这样加载多了 就出现OOM了 ⊙﹏⊙‖∣° ⊙﹏⊙‖∣° * 问题需要解决 */ /*map = new HashMap<String, Object>(); map.put("title", "地图指南"); map.put("twoTitle", ""); map.put("image", R.drawable.guide); list.add(map); Log.i(TAG,"getData()方法没有出错"); map = new HashMap<String, Object>(); map.put("title", "驾车路线"); map.put("twoTitle", ""); map.put("image", R.drawable.cat); list.add(map); Log.i(TAG,"getData()方法没有出错");*/ return list; } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Log.v("我的单击监听", (String) mData.get(position).get("title")); } private void showButton() { new AlertDialog.Builder(this) .setTitle("标题") .setMessage("我的ListView") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).show(); } public final class ViewHolder{ public ImageView image; public TextView title; public TextView twoTitle; public Button button; } public class MyAdapter extends BaseAdapter{ private LayoutInflater inflater; public MyAdapter(Context context){ this.inflater = LayoutInflater.from(context); } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView == null){ holder = new ViewHolder(); convertView = inflater.inflate(R.layout.activity_main,null); holder.image = (ImageView)convertView.findViewById(R.id.image_); holder.title = (TextView)convertView.findViewById(R.id.title_); holder.twoTitle = (TextView)convertView.findViewById(R.id.twoTitle_); holder.button = (Button)convertView.findViewById(R.id.button_); convertView.setTag(holder); Log.i(TAG,"关联布局没有出错"); }else { holder = (ViewHolder)convertView.getTag(); } Log.i(TAG, "关联布局后获取posititon值之前还没有报错"); holder.image.setBackgroundResource((Integer) mData.get(position).get("image")); holder.title.setText((String) mData.get(position).get("title")); holder.twoTitle.setText((String)mData.get(position).get("twoTitle")); Log.i(TAG,"获取position值之后没有错误"); holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showButton(); } }); return convertView; } }}
源码 :http://download.csdn.net/detail/csdnhejingzhou/9456651
0 0
- listview
- listview
- listview
- ListView
- ListView
- listview
- listview
- listView
- ListView
- ListView
- ListView
- listview
- LIstView
- ListView
- listview
- ListView
- ListView
- ListView
- restful 常见的返回错误码总结
- selenium之CSS简述
- 为什么应该学习Kotlin
- poj3660Cow Contest_Floyd传递闭包
- 数组指针和指针数组的区别
- ListView
- 动态链接库dll 静态链接库lib 动态导入库lib
- 2千万用户APP的开发运营流程
- 1069. The Black Hole of Numbers (20)
- Git仓库迁移而不丢失log的方法
- 插件模式
- 复高斯白噪声的产生与叠加方法总结
- iOS 自定义navigationItem
- Dijkstra 求最短路径算法