ListView布局,里面的值显示不出来,把代码贴出来,各位帮分析下

赵永康V587 2012-09-14 12:56:17
刚接触安卓,现在都这没思路了...着急中..

java代码:
package et.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class ee extends Activity {
private ArrayList<HashMap<String, Object>> list;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LayoutInflater _LayoutInflater = LayoutInflater.from(this);
View _View = _LayoutInflater.inflate(R.layout.main, null);
InitList(_View);
}

/**
* 获得填充集合
* @param _View
*/
private void InitList(View _View) {
ListView _ListView = (ListView) _View.findViewById(R.id.lv_ls_Ent);
list = new ArrayList<HashMap<String,Object>>();
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

HashMap<String, Object> map1 = new HashMap<String, Object>();
map1.put("title", R.drawable.ic_launcher);
map1.put("info", "G_1");
map1.put("img", "");
list.add(map1);
HashMap<String, Object> map2 = new HashMap<String, Object>();
map2 = new HashMap<String, Object>();
map2.put("title", R.drawable.ic_launcher);
map2.put("info", "G_2");
map2.put("img", "");
list.add(map2);
MyAdapter adapter=new MyAdapter(this);
_ListView.setAdapter(adapter);
}
public final class ViewHolder{
public ImageView img;
public TextView title;
public TextView info;
// public Button viewBtn;
}
/**
* 自定义适配器
* @author Administrator
*
*/
private class MyAdapter extends BaseAdapter {
private LayoutInflater mInflater = null;
private MyAdapter(Context context)
{
//根据context上下文加载布局,这里的是Demo17Activity本身,即this
this.mInflater = LayoutInflater.from(context);
}

public int getCount() {
return list.size();
}

public Object getItem(int position) {
return list.get(position);
}

public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listitem, null);
}

ImageView img = (ImageView) convertView.findViewById(R.id.listitem_left_image);
ImageView title = (ImageView) convertView.findViewById(R.id.listitem_image);
TextView info = (TextView) convertView.findViewById(R.id.listitem_text);
info.setText((String) list.get(position).get("info"));
System.out.println((String) list.get(position).get("info"));
img.setImageResource(R.drawable.ic_launcher);
//
ViewHolder holder = null;
if (convertView == null) {

holder=new ViewHolder();

convertView = mInflater.inflate(R.layout.listitem, null);
holder.img = (ImageView)convertView.findViewById(R.id.listitem_left_image);
holder.title = (TextView)convertView.findViewById(R.id.listitem_image);
holder.info = (TextView)convertView.findViewById(R.id.listitem_text);
// holder.viewBtn = (Button)convertView.findViewById(R.id.view_btn);
convertView.setTag(holder);

}else {

holder = (ViewHolder)convertView.getTag();
}


holder.img.setBackgroundResource((Integer)list.get(position).get("img"));
holder.title.setText((String)list.get(position).get("title"));
holder.info.setText((String)list.get(position).get("info"));

// holder.viewBtn.setOnClickListener(new View.OnClickListener() {
//
// public void onClick(View v) {
// showInfo();
// }
// });
return convertView;
}
}
}




页面布局:

main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/father_scroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:focusable="true"
android:orientation="vertical">

<!--
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
-->
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:gravity="center"
android:orientation="horizontal" >
<EditText
android:id="@+id/edit"
android:layout_width="200dp"
android:layout_height="wrap_content"/>

<Button
android:id="@+id/btn_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"
/>
</LinearLayout>
<!-- xczf_qy_bg -->
<LinearLayout
android:id="@+id/qy_listview"
android:layout_width="fill_parent"
android:layout_height="280dp"
android:layout_gravity="top"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingTop="1dp"
android:paddingBottom="1dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#000"
>
<ListView
android:id="@+id/lv_ls_Ent"
android:layout_width="0dp"
android:padding="2dp"
android:layout_height="280dp"
android:layout_weight="0.8"
android:fadingEdge="none"
android:fastScrollEnabled="true"

android:footerDividersEnabled="false"
android:cacheColorHint="#00000000"
android:headerDividersEnabled="true" >
</ListView>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>



listiten.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
>
<ImageView
android:id="@+id/listitem_left_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
/>
<TextView
android:id="@+id/listitem_text"
android:textSize="18sp"
android:layout_toRightOf="@+id/listitem_left_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/listitem_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toLeftOf="@id/listitem_text"
/>
</RelativeLayout>
</LinearLayout>




...全文
226 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜归人 2012-09-21
  • 打赏
  • 举报
回复
你的getView方法写的有问题 你先跟踪 能进getView方法再慢慢调试
逐Ls梦 2012-09-21
  • 打赏
  • 举报
回复
另外:
private MyAdapter(Context context)
{

this.mInflater = LayoutInflater.from(context);
}
在这个构造方法里面再传个参数list.都没看清你那个adapter是不是放在activity中的
逐Ls梦 2012-09-21
  • 打赏
  • 举报
回复
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();有了这一句让你添加的数据成了局部变量list里面,你那个Adapter里面用的list是成员变量的list值都是空的哪来的数据?所以把它“List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();”删了。

想说的是你这弄得可是够乱的啊。看着都晕...定义变量乱套了都。
今夜不谈风月 2012-09-17
  • 打赏
  • 举报
回复
大致看了下,也没找到错误,不过楼主如果是想重载adapter的话,应该把要显示的图片啊什么的提出来封装成一个对象,在adapter类中赋值。你的这种方法之前我同事也用过,我果断改了,而且布局文件的引用也不用这么麻烦。。。
kaxionen2011 2012-09-15
  • 打赏
  • 举报
回复
LayoutInflater _LayoutInflater = LayoutInflater.from(this);
View _View = _LayoutInflater.inflate(R.layout.main, null);
没看懂要这个干啥,直接删掉
赵永康V587 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

首先,List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
这句是多余的,list已经是成员变量了
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
……
[/Quote]
我把
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
这句话去掉后,程序直接强制退出啊...
然后我不去掉并且,按你说的改了,还是显示不出来数据啊?
麦田捕手 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

首先,List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
这句是多余的,list已经是成员变量了
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
……
[/Quote]
夜归人 2012-09-14
  • 打赏
  • 举报
回复
首先,List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
这句是多余的,list已经是成员变量了
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LayoutInflater _LayoutInflater = LayoutInflater.from(this);
View _View = _LayoutInflater.inflate(R.layout.main, null);
InitList(_View);
}
onCreate方法改为
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
InitList();
}
把InitList()中ListView _ListView = (ListView) _View.findViewById(R.id.lv_ls_Ent);
直接改为ListView _ListView = (ListView)findViewById(R.id.lv_ls_Ent);
这样你就可以进入getview方法了(之前根本都没进入getview方法,当然显示不了数据啊~~)

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧