java - 扩展 ListActivity android.R.id.list

标签 java android xml listview listactivity

我正在创建一个计算器。进行计算时,我需要将它们显示出来,然后可以单击,这样我就可以删除单个数字。我关注了this教程,并走到这一步。唯一的问题是当我运行它时,我得到一个 FC 并且我的 logcat 是这样说的:

Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'

我所有的研究都说要将我的 id 更改为 android.R.id.list。我试过了,但仍然遇到同样的错误。

这是我的代码:

CustomAdapter.java (扩展 ArrayAdapter)

private final Context context;
private final ArrayList<Calculations> items = null;
private final LayoutInflater inflater;
public CustomListAdapter(Context context, int textViewResourceId, ArrayList<Calculations>items){
    super(context, textViewResourceId, items);
    this.context = context;
    this.items = items;
    this.inflater = LayoutInflater.from(context);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    final View v = convertView != null 
                       ? convertView
                       : infalter.inflate(R.layout.list_item, parent, false);

    final Calculations c = items.get(position);
    final TextView type = (TextView) v.findViewById(R.id.tvType);
    final TextView figure = (TextView) v.findViewById(R.id.tvFullFigure);
    final TextView amount = (TextView) v.findViewById(R.id.tvAmount);
    type.setText(c.getType());
    figure.setText(c.getFigure());
    amount.setText(c.getFigureAmount());

    return v;

}

acitivty_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingTop="15dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:background="@drawable/concret_back"
    >

<!--Code remove for brevity-->

    <ListView
        android:id="@+id/android.R.id.list"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent" />

</RelativeLayout>

我在使用另一个应用程序时遇到过这个问题,但从未找到解决方案。所以我想问为什么我一直收到 Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 错误?

感谢任何输入。

最佳答案

更改您的 ListView id 来自

     <ListView
        android:id="@+id/android.R.id.list"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent" />

     <ListView
        android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent" />

关于java - 扩展 ListActivity android.R.id.list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18773793/

相关文章:

java - 两个用不同语言编写的应用程序可以通信吗?

java - 我发送到队列的 SOAP 请求在 IBM MQ 上格式不正确

android - 如何在 Espresso 中测试布局的 UI,而不将其附加到 Activity?

java - Android - 单击 ListView 会激活新 Intent

xml - 根据xml标签内容重命名文件

Java 8 java.time : Adding TemporalUnit in Instant vs LocalDateTime

java - 如何在 java 中将列表 <JSONObject> 转换为 Json 字符串 (com.amazonaws.util.json.JSONObject)

java - HTTPRequest 似乎不起作用(在网络应用程序中注册用户)

c# - FileSystemWatcher 丢失文件

c# - 下拉列表中的选定元素应显示相关详细信息