Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android CustomAdapter和ListView_Android_Listview_Adapter_Listadapter - Fatal编程技术网

Android CustomAdapter和ListView

Android CustomAdapter和ListView,android,listview,adapter,listadapter,Android,Listview,Adapter,Listadapter,我的代码中一定有遗漏或错误,因此ListView不会显示任何内容 我遵循了这个例子 [我的模型] package com.example.apinato.layoutexample; public class MyModel { private String name; private String surname; private String ranking; public MyModel(String name, String address, Stri

我的代码中一定有遗漏或错误,因此ListView不会显示任何内容

我遵循了这个例子

[我的模型]

package com.example.apinato.layoutexample;

public class MyModel {
    private String name;
    private String surname;
    private String ranking;

    public MyModel(String name, String address, String ranking) {
        this.name = name;
        this.surname = address;
        this.ranking = ranking;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }
    public String getSurname() {
        return surname;
    }

    public void setRanking(String ranking) {
        this.surname= ranking;
    }
    public String getRanking() {
        return ranking;
    }

}
[myCustomAdapter]

package com.example.apinato.layoutexample;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;


import java.util.ArrayList;
import java.util.List;

public class MyCustomAdapter extends ArrayAdapter {
    private final Context context;
    private final List list;


    public MyCustomAdapter(Context context, int position, ArrayList<com.example.apinato.layoutexample.MyModel> list) {
        super(context, position);
        this.context = context;
        this.list = list;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View rowView = convertView;


        // Get a new instance of the row layout view
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        rowView = inflater.inflate(R.layout.row, parent, false);


        TextView _name = (TextView) rowView.findViewById(R.id.titoloriga1);
        TextView _surname = (TextView) rowView.findViewById(R.id.descrizioneriga1);
        TextView _ranking = (TextView) rowView.findViewById(R.id.ranking1);

        //added according to your suggestions    
        com.example.apinato.layoutexample.MyModel myModel = (com.example.apinato.layoutexample.MyModel) list.get(position);

        _name.setText(myModel.getName());
        _surname .setText(myModel.getName());
        _ranking .setText(myModel.getName());

        return rowView;
    }

}
package com.example.apinato.layoutexample;
导入android.app.Activity;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.TextView;
导入java.util.ArrayList;
导入java.util.List;
公共类MyCustomAdapter扩展了ArrayAdapter{
私人最终语境;
私人最终名单;
公共MyCustomAdapter(上下文、int位置、ArrayList列表){
超级(上下文、位置);
this.context=上下文;
this.list=列表;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行视图=转换视图;
//获取行布局视图的新实例
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
rowView=充气机。充气(R.layout.row,父级,false);
TextView _name=(TextView)rowView.findViewById(R.id.titoloriga1);
TextView _姓氏=(TextView)rowView.findViewById(R.id.descripioneriga1);
TextView _ranking=(TextView)rowView.findViewById(R.id.ranking1);
//根据您的建议添加
com.example.apinato.layoutexample.MyModel MyModel=(com.example.apinato.layoutexample.MyModel)list.get(位置);
_name.setText(myModel.getName());
_setText(myModel.getName());
_setText(myModel.getName());
返回行视图;
}
}
[我的活动]

package com.example.apinato.layoutexample;

import android.app.Activity;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

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


public class MainActivity extends Activity {

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

        final ListView listview = (ListView) findViewById(R.id.listview);

        ArrayList<com.example.apinato.layoutexample.MyModel> list = new ArrayList<com.example.apinato.layoutexample.MyModel>();
        list.add(new com.example.apinato.layoutexample.MyModel("aaaaa1","aaaaa1","2"));
        list.add(new com.example.apinato.layoutexample.MyModel("bbbbb2","bbbbb2","3"));
        list.add(new com.example.apinato.layoutexample.MyModel("ccccc3","ccccc3","1"));
        list.add(new com.example.apinato.layoutexample.MyModel("ddddd4", "ddddd4", "5"));
        list.add(new com.example.apinato.layoutexample.MyModel("ccccc5", "ccccc5", "4"));

        final com.example.apinato.layoutexample.MyCustomAdapter adapter = new com.example.apinato.layoutexample.MyCustomAdapter(this, R.layout.row, list);
        listview.setAdapter(adapter);


    }
}
package com.example.apinato.layoutexample;
导入android.app.Activity;
导入android.content.Context;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Adapter;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入android.widget.ListView;
导入android.widget.simpledapter;
导入android.widget.TextView;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终ListView ListView=(ListView)findViewById(R.id.ListView);
ArrayList=新建ArrayList();
添加(新的com.example.apinato.layoutexample.MyModel(“AAAA1”、“AAAA1”、“2”));
添加(新的com.example.apinato.layoutexample.MyModel(“bbbbb2”、“bbbbb2”、“3”));
添加(新的com.example.apinato.layoutexample.MyModel(“CCCC3”、“CCCC3”、“1”));
add(new com.example.apinato.layoutexample.MyModel(“ddd4”、“ddd4”、“5”));
添加(新的com.example.apinato.layoutexample.MyModel(“ccccc5”、“ccccc5”、“4”);
final com.example.apinato.layoutexample.MyCustomAdapter adapter=new com.example.apinato.layoutexample.MyCustomAdapter(此,R.layout.row,列表);
setAdapter(适配器);
}
}
[行的布局](未显示活动的布局)


试试这个:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View rowView = convertView;


        // Get a new instance of the row layout view
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        rowView = inflater.inflate(R.layout.row, parent, false);


        TextView _name = (TextView) rowView.findViewById(R.id.titoloriga1);
        TextView _surname = (TextView) rowView.findViewById(R.id.descrizioneriga1);
        TextView _ranking = (TextView) rowView.findViewById(R.id.ranking1);

        MyModel myModel = list.get(position);

        _name.setText(myModel.getName()); 
        _surname .setText(myModel..getSureName());
        _ranking .setText(myModel.getRanking());

        return rowView;
    }

将这些行添加到
getView()
方法中,您缺少设置属性值的功能,正如Blackbelt所说

_name.setText(list.get(position).getName()));
_surname.setText(list.get(position).getSureName()));
_ranking.setText(list.get(position).getRanking());

更改您的自定义适配器

@Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View rowView = convertView;


        // Get a new instance of the row layout view
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        rowView = inflater.inflate(R.layout.row, parent, false);


        TextView _name = (TextView) rowView.findViewById(R.id.titoloriga1);
        TextView _surname = (TextView) rowView.findViewById(R.id.descrizioneriga1);
        TextView _ranking = (TextView) rowView.findViewById(R.id.ranking1);
        _name.setText(list.get(position).getName());
        _surname.setText(list.get(position).getSurname());
        _ranking.setText(list.get(position)getRanking());
        return rowView;
    }

GetView中缺少
\u name.setText()
。在自定义适配器中,您没有为
\u name、\u姓氏和\u排名设置值,因此它不会显示任何内容,并且在添加这些内容后仍然不起作用?您缺少适配器中的实现getCount。默认情况下,此方法返回0,这意味着您的适配器有0项。是否也可以在列表中显示drawable?
@Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View rowView = convertView;


        // Get a new instance of the row layout view
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        rowView = inflater.inflate(R.layout.row, parent, false);


        TextView _name = (TextView) rowView.findViewById(R.id.titoloriga1);
        TextView _surname = (TextView) rowView.findViewById(R.id.descrizioneriga1);
        TextView _ranking = (TextView) rowView.findViewById(R.id.ranking1);
        _name.setText(list.get(position).getName());
        _surname.setText(list.get(position).getSurname());
        _ranking.setText(list.get(position)getRanking());
        return rowView;
    }