安卓工作室 : Simple BaseAdapter Setup Fail

标签 android adapter

我想使用 BaseAdapter 创建一个简单的填充 GridView,但我一直得到空列表 - 应用程序运行但没有显示 View 。 以下是用于此任务的所有文件:

主要:

String[] items = {"Some", "items", "to", "display"};

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

    GridView grid = (GridView)findViewById(R.id.grid);
    final TextView text = (TextView)findViewById(R.id.text);

    MyAdapter adapter = new MyAdapter(getApplicationContext(), items);

    grid.setAdapter(adapter);

我的适配器:

LayoutInflater 充气器;

Context context;
String[] myData;

public MyAdapter(Context context, String[] myData) {
    this.context = context;
    this.myData = myData;
}

@Override
public int getCount() {
    return 0;
}

@Override
public Object getItem(int position) {
    return myData[position];
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.grid, parent, false);
    TextView text = (TextView) convertView.findViewById(R.id.textView);
    text.setText(myData[position]);
    return convertView;
}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.random.MainActivity">

    <GridView
        android:id="@+id/grid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:verticalSpacing="40dip"
        android:horizontalSpacing="5dip"
        android:numColumns="auto_fit"
        android:columnWidth="100dip"
        android:stretchMode="columnWidth"
        android:gravity="center"
        />

</android.support.constraint.ConstraintLayout>

grid.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">
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        />
</LinearLayout>

我已无数次检查各种来源,但未能在我的代码中找到错误。如果有人看一下它并找到空 Activity 的原因,那将是惊人的,因为原因可能很明显。

最佳答案

您的 getCount 方法始终返回 0。改为返回 myData 数组中的元素数。

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

关于安卓工作室 : Simple BaseAdapter Setup Fail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47335373/

相关文章:

java.lang.RuntimeException : Unable to instantiate activity ComponentInfo java. lang.NullPointerException

java - 如何将手机连接到笔记本电脑?

android - 在 RecyclerView android 中拖放期间 Position 值面临问题

java - 计时器类不重新启动计时器 - Android

java - android CardView 替代方案

java - Android RecyclerView,基于OnClick改变 View 。

Android - SimpleCursorAdapter 是否允许像 BaseAdapter 这样的多种布局?

android - ListView SimpleCursorAdapter 更新

android - recyclerview 在将新项目添加到列表时得到刷新

android - 无法将 gps 位置写入 exif