新手求助:android用 ListView不显示列表怎么回事? 急!!!!!!

jing377123751 2016-05-18 03:38:31
menu.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"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="25sp"
android:text="@string/menu_title"
/>
<ListView
android:id="@+id/menuList"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>


MenuActivity.java

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import cn.lpj.tool.DialogUtils;
import cn.lpj.tool.HttpUtils;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

public class MenuActivity extends Activity {
private ListView menulist;
private JSONArray jsoArray;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);

menulist = (ListView) findViewById(R.id.menuList);


try {
jsoArray = new JSONArray(HttpUtils.requestGet(HttpUtils.URL
+ "menuservlet"));
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}


//BaseAdapter adapter = new JsonAdapter(MenuActivity.this, jsoArray, "name",true);
BaseAdapter adapter = new BaseAdapter(){
@Override
public View getView(int position, View view, ViewGroup parent) {

LinearLayout linear=new LinearLayout(MenuActivity.this);
linear.setOrientation(0);
ImageView iv=new ImageView(MenuActivity.this);
iv.setImageResource(R.drawable.ic_launcher);
linear.addView(iv);
iv.setPadding(10, 0, 0, 0);
TextView tv=new TextView(MenuActivity.this);
tv.setTextSize(20);

try {

String menuName=((JSONObject)getItem(position)).getString("name");
tv.setText(menuName);
} catch (JSONException e) {
e.printStackTrace();
}





linear.addView(tv);

return linear;
}

@Override
public long getItemId(int position) {

return position;
}

@Override
public Object getItem(int position) {
try {
return jsoArray.get(position);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

@Override
public int getCount() {
return jsoArray.length();
}



};
menulist.setAdapter(adapter);


}
}


错在哪了?弄了一下午,求高人指点
...全文
422 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
节操在此 2016-05-19
  • 打赏
  • 举报
回复
你的layout没有宽高
qq_26763799 2016-05-19
  • 打赏
  • 举报
回复
adapter的getview方法感觉写的乱乱的,你是每次new一个linelayout,其实是不必要的,直接用activity的layoutinflat导入布局xml就行了....
逃0210 2016-05-19
  • 打赏
  • 举报
回复
一般把baseAdapter提出来写,这样就有很简单的模板了,你这样很容易就错了啊
alongsheng 2016-05-19
  • 打赏
  • 举报
回复
或者 View=linear; return View;
alongsheng 2016-05-19
  • 打赏
  • 举报
回复
你的adapter整体写的有问题啊
jing377123751 2016-05-18
  • 打赏
  • 举报
回复
怎么没有人

80,337

社区成员

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

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