Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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 自定义ListVIew不显示,显示的是空屏幕_Android_Listview_Custom Adapter - Fatal编程技术网

Android 自定义ListVIew不显示,显示的是空屏幕

Android 自定义ListVIew不显示,显示的是空屏幕,android,listview,custom-adapter,Android,Listview,Custom Adapter,当列表中没有项目时,不会显示空视图。有什么问题 主要活动 包com.example.android.customadapter public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConte

当列表中没有项目时,不会显示空视图。有什么问题

主要活动

包com.example.android.customadapter

public class MainActivity extends AppCompatActivity {

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


        ArrayList<Players> objects = new ArrayList<>();


        objects.add(new Players("Shikhar Dhawan",R.drawable.shikhar));
        objects.add(new Players("Virat Kohli",R.drawable.kohli));

    }
}
public class Players {

    private String mName;
    private int image;


    Players(String name,int res)
    {
        mName = name;
        image = res;
    }

    public String getName()
    {
        return mName;
    }

    public int getImage()
    {
        return image;
    }
}
自定义适配器类

包com.example.android.customadapter

public class MainActivity extends AppCompatActivity {

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


        ArrayList<Players> objects = new ArrayList<>();


        objects.add(new Players("Shikhar Dhawan",R.drawable.shikhar));
        objects.add(new Players("Virat Kohli",R.drawable.kohli));

    }
}
public class Players {

    private String mName;
    private int image;


    Players(String name,int res)
    {
        mName = name;
        image = res;
    }

    public String getName()
    {
        return mName;
    }

    public int getImage()
    {
        return image;
    }
}
我的自定义数组列表适配器

public class CustomAdapter extends ArrayAdapter<Players> {

    public CustomAdapter(@NonNull Context context, @LayoutRes int resource, @NonNull ArrayList<Players> objects) {
        super(context, resource, objects);
    }


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

        View v = convertView;
        if(v==null)
        {
            v = LayoutInflater.from(getContext()).inflate(R.layout.list_item,parent,false);
        }

        Players p = getItem(position);

        TextView t = (TextView)v.findViewById(R.id.miwok_text_view);

        t.setText(p.getName());

        ImageView i = (ImageView)v.findViewById(R.id.image);

        i.setImageResource(p.getImage());


        return v;
    }

}
公共类CustomAdapter扩展了ArrayAdapter{
公共CustomAdapter(@NonNull上下文上下文、@LayoutRes int-resource、@NonNull ArrayList对象){
超级(上下文、资源、对象);
}
@非空
@凌驾
公共视图getView(int位置,@Nullable视图convertView,@NonNull视图组父级){
视图v=转换视图;
如果(v==null)
{
v=LayoutInflater.from(getContext()).flate(R.layout.list_项,父项,false);
}
玩家p=getItem(位置);
TextView t=(TextView)v.findViewById(R.id.miwok_text_view);
t、 setText(p.getName());
ImageView i=(ImageView)v.findViewById(R.id.image);
i、 setImageResource(p.getImage());
返回v;
}
}

从activity\u main.xml获取列表视图。并为该列表设置适配器。有关更多详细信息:

您将收到错误,因为您没有从类中获取值。 这是我使用的代码

 @NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view =convertView;
    LayoutInflater layoutInflater = LayoutInflater.from(getContext());
    if (convertView==null){
        view=layoutInflater.inflate(R.layout.customplaylist,parent,false);
    }
    Playlistfileinfo playlistfileinfo =(Playlistfileinfo)getItem(position);
    TextView textView =(TextView)view.findViewById(R.id.textView7);
    textView.setTypeface(typeface);
    textView.setText(playlistfileinfo.getName());
    return view;
}

您可以看到
playlifileinfo playlifileinfo=(playlifileinfo)getItem(position)希望这对您有所帮助。

我已经在主活动的ArrayList末尾解决了它 初始化。在OnCreate方法中创建Listview,并将数组适配器设置为Listview

CustomAdapter=新的CustomAdapter(这个,单词)


您没有在OnCreate中初始化Listview,也没有将adapter设置为itOlena Y感谢您的回复,但我如何才能做到这一点
CustomAdapter CustomAdapter=new CustomAdapter(这个,words);ListView lv=(ListView)findViewById(R.id.list);lv.setAdapter(自定义适配器)谢谢大家我理解了这个问题并解决了它我忘了在onCreate方法中初始化listview,也忘了将数组适配器设置为listview