Json解析后无法在android的listview中打印数据
我已经创建了一个适配器,它是从基本适配器扩展而来的,可以正常工作吗?请告诉我如何在Json解析后绑定值并在列表视图中显示。请建议我尝试实现。在Json解析后无法在android的listview中打印数据,android,Android,我已经创建了一个适配器,它是从基本适配器扩展而来的,可以正常工作吗?请告诉我如何在Json解析后绑定值并在列表视图中显示。请建议我尝试实现。在getView()中绑定值自定义适配器的方法。使用自定义适配器将JSON数据绑定到Listview,如下所示: public class RowItem { public RowItem(String title, String desc) { this.title = title; this.desc = de
getView()中绑定值
自定义适配器的方法。使用自定义适配器
将JSON数据绑定到Listview,如下所示:
public class RowItem {
public RowItem(String title, String desc) {
this.title = title;
this.desc = desc;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
private String title;
private String desc;
}
公共类ListViewAdapterForLead扩展BaseAdapter{
语境;
充气机;
阵列列表数据;
TextView-txtText;
public ListViewAdapterForLead(上下文上下文,ArrayList ArrayList){
this.context=上下文;
数据=数组列表;
}
@凌驾
public int getCount(){
返回data.size();
}
@凌驾
公共对象getItem(int索引){
返回数据。获取(索引);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
if(convertView==null){
LayoutInflater mInflater=(LayoutInflater)
context.getSystemService(Activity.LAYOUT\u INFLATER\u SERVICE);
convertView=mInflater.充气(R.layout.row_lead,空);
}
txtText=(TextView)convertView.findViewById(R.id.textLeadMenu);
setText(data.get(position.getTitle());
返回视图;
}
公共视图getDropDownView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
LayoutInflater mInflater=(LayoutInflater)
context.getSystemService(Activity.LAYOUT\u INFLATER\u SERVICE);
convertView=mInflater.充气(R.layout.row_lead,空);
}
txtText=(TextView)convertView.findViewById(R.id.textLeadMenu);
setText(data.get(position.getTitle());
返回视图;
}
}
您应该在后台任务完成后设置数据。*首先尝试在onPostExecute()方法中设置列表适配器。
*确保填写模型中的所有详细信息。
*在适配器类中使用getView()方法解析数据。
有关带BaseAdapter的ListView的示例代码,请参阅下面的链接
您忘记了一件事,这就是列表为空的原因 将解析后的数据添加到列表中
public class ListViewAdapterForLead extends BaseAdapter {
Context context;
LayoutInflater inflater;
ArrayList<SpinnerNavItem> data;
TextView txtText;
public ListViewAdapterForLead(Context context,ArrayList<SpinnerNavItem> arraylist) {
this.context = context;
data = arraylist;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int index) {
return data.get(index);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.row_lead, null);
}
txtText = (TextView) convertView.findViewById(R.id.textLeadMenu);
txtText.setText(data.get(position).getTitle());
return convertView;
}
public View getDropDownView(int position,View convertView,ViewGroup parent){
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.row_lead, null);
}
txtText = (TextView) convertView.findViewById(R.id.textLeadMenu);
txtText.setText(data.get(position).getTitle());
return convertView;
}
}
//在此处初始化您的列表
rowItems=新列表();
对于(int i=0;i它不是json它的xml dearUse instead我能够获取数据我在LisView中绑定时遇到问题这也在工作但我无法在Preexcute Methodi中向数据添加数据模型我在ListView中打印数据时遇到问题我在RowItem中绑定数据时遇到问题在AsyncTask类ArrayList mArrayList=new ArrayList中全局添加它t();然后尝试在doBackground方法内部添加RowItem rItem=new RowItem(EmployeeName,Designation);mArrayList.add(rItem);我在@Gulnaz Ghanchi中所做的操作我在doninbackground和onPost中遇到问题这里是我的自定义视图编写您的System.out.println(Id+“”+designment+“”+EmployeeName)
在您的post中执行一行。
public class ListViewAdapterForLead extends BaseAdapter {
Context context;
LayoutInflater inflater;
ArrayList<SpinnerNavItem> data;
TextView txtText;
public ListViewAdapterForLead(Context context,ArrayList<SpinnerNavItem> arraylist) {
this.context = context;
data = arraylist;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int index) {
return data.get(index);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.row_lead, null);
}
txtText = (TextView) convertView.findViewById(R.id.textLeadMenu);
txtText.setText(data.get(position).getTitle());
return convertView;
}
public View getDropDownView(int position,View convertView,ViewGroup parent){
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.row_lead, null);
}
txtText = (TextView) convertView.findViewById(R.id.textLeadMenu);
txtText.setText(data.get(position).getTitle());
return convertView;
}
}
//initialize your list here
rowItems = new List<RowItems>();
for (int i = 0; i <= _jarray.length(); i++) {
JSONObject _obj = _jarray.getJSONObject(i);
RowItemsr = new RowItems();
Id = _obj.getString("Id");
Designation = _obj.getString("Designation");
EmployeeName = _obj.getString("EmployeeName");
System.out.println(Id + "" + Designation + ""
+ EmployeeName);
// you must create an object and add it to your list
r.setTitle(EmployeeName);
r.setDesc(Designation);
rowItems.add(r);
}