1

我在 MainAvtivity 中有以下代码:

private DBOperations DataDBoperation;

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

        DataDBoperation = new DBOperations(this);
        DataDBoperation.open();

        List values = DataDBoperation.getAllUserSIMs();

        // Use the SimpleCursorAdapter to show the
        // elements in a ListView
        ArrayAdapter adapter = new ArrayAdapter(this,
                android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);



    }
    public void addSim(View view) {

        ArrayAdapter adapter = (ArrayAdapter) getListAdapter();

        EditText text = (EditText) findViewById(R.id.editText1);
        SIMsClass stud = DataDBoperation.addSIMs(text.getText().toString());

        adapter.add(stud);

    }

    public void deleteSim(View view) {

        ArrayAdapter adapter = (ArrayAdapter) getListAdapter();
        SIMsClass sim = null;

        if (getListAdapter().getCount() > 0) {
            sim = (SIMsClass) getListAdapter().getItem(0);
            DataDBoperation.deleteSIMs(sim);
            adapter.remove(sim);
        }

    }

    public void addPassword(View view) {

        ArrayAdapter adapter = (ArrayAdapter) getListAdapter();

        EditText text = (EditText) findViewById(R.id.editText2);
        PasswordClass stud = DataDBoperation.addPassword(text.getText().toString());

        adapter.add(stud);

    }

这是layoun XML文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="113dp"
        android:text="TextView" />

    <EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:ems="10" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/addBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText1"
        android:onClick="addSim"
        android:text="Add New" />

    <Button
        android:id="@+id/deleteBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/addBtn"
        android:layout_below="@+id/editText1"
        android:onClick="deleteSim"
        android:text="Delete First" />

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/deleteBtn" >
    </ListView>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/addBtn"
        android:ems="10" />

    <Button
        android:id="@+id/passwordBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@android:id/list"
        android:layout_toRightOf="@+id/editText1"
        android:onClick="addPassword"
        android:text="@string/password" />

</RelativeLayout>

错误:
该方法未为 MainActivity 类型定义 setListAdapter(Adapter)。
该方法是未为 MainActivity 类型定义的 getListAdapter(Adapter)。

4

2 回答 2

5

您需要扩展ListActivity而不是Activity. setListAdapter是一种方法ListActivity。相同的getListAdapter

http://developer.android.com/reference/android/app/ListActivity.html

于 2013-10-07T09:05:47.670 回答
2

如果您只扩展活动,那么您需要从您设置为 setcontentview 的视图中获取列表视图

及其在xml布局中设计和提供listview的id(用于理解多个列表标识)的bttr,例如

  <ListView
    android:id="@+id/listScreen"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/deleteBtn" >
</ListView>

并从您设置适配器的活动中获取列表视图,然后将适配器设置为列表视图。u gt 错误 bcz tht 方法 u cn 覆盖如果你扩展 ListActivity 或 ListFragment。bt ASFIK 您使用的简单活动

所以一旦尝试

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

        DataDBoperation = new DBOperations(this);
        DataDBoperation.open();

        List values = DataDBoperation.getAllUserSIMs();

        // Use the SimpleCursorAdapter to show the
        // elements in a ListView.

// get your listview from layout "(R.layout.activity_main)"
// i hve gvn own id not android default .. for undestanding. you can use the id which u used
             ListView list = findViewById(R.id.listScreen);
            ArrayAdapter adapter = new ArrayAdapter(this,
                    android.R.layout.simple_list_item_1, values);
            list.setAdapter(adapter);



    }

有关更多详细信息,请检查

于 2013-10-07T09:21:29.323 回答