List-View / -Adapter不列出数据

时间:2018-01-29 13:35:15

标签: listview arraylist listadapter

我有一个(可能很小)的问题。我的ListView没有列出我成功插入的数据。我的ListView位于 notes_layout 中,在我的 NotesActivity 中声明为 lv_notes 。它应该采取的数据来自我创建的数据库数据库。数据将以其他布局插入。 :

public class NotesActivity extends MenuActivity implements View.OnClickListener {
    ImageView iv_back3;
ListView lv_notes;

database db;



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

    iv_back3 = findViewById(R.id.iv_back3);


    lv_notes = findViewById(R.id.lv_notes);

    iv_back3.setOnClickListener(this);

    db = new database(this);

    populateListView();

}

private void populateListView() {

    Cursor res = db.getTextData();
    ArrayList<String> listData = new ArrayList<>();
    while (res.moveToNext()) {
        listData.add(res.getString(1));
    }

    ListAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listData);
    lv_notes.setAdapter(adapter);


    lv_notes.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        // Wenn auf Listview geclickt wird ---------------------------------------------
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            String name = adapterView.getItemAtPosition(i).toString();

            Cursor data = db.getItemID(name);
            int itemID = -1;
            while (data.moveToNext()) {
                itemID = data.getInt(0);
            }

            if (itemID > -1) {
                Intent editScreenIntent = new Intent(NotesActivity.this, EditDataActivity.class);
                editScreenIntent.putExtra("id", itemID);
                editScreenIntent.putExtra("name", name);
                startActivity(editScreenIntent);

            } else {
                Toast.makeText(NotesActivity.this, "No ID with that name", Toast.LENGTH_SHORT).show();
            }

        }
    });


   iv_back3.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           startActivity(new Intent(NotesActivity.this, MenuActivity.class));

       }
   });

}
}

notes_layout:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fl_notes"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/ambient_mode_text">

    <android.support.wearable.view.DismissOverlayView
        android:id="@+id/dismiss"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </android.support.wearable.view.DismissOverlayView>

    <ImageView
        android:id="@+id/iv_back3"
        android:layout_width="30sp"
        android:layout_height="30sp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="5sp"
        android:src="@drawable/ic_arrow_back_black_24dp" />

    <ListView
        android:id="@+id/lv_notes"
        android:layout_width="150sp"
        android:layout_height="160sp"
        android:layout_gravity="bottom|center_horizontal"
        android:fadeScrollbars="false"
        android:scrollbarAlwaysDrawHorizontalTrack="false"
        android:scrollbars="none"
        android:visibility="visible"></ListView>

</FrameLayout>

如果这是一个明显的错误,我很抱歉,但我非常感谢您的帮助

David J。

1 个答案:

答案 0 :(得分:0)

我通过将活动的主题 AppTheme 更改为 Theme.AppCompat 来解决此问题。我认为引起它的问题是滑动控制功能的使用应该禁用,右滑动退出应用程序。我希望我可以帮助你。

<activity
        android:name=".MenuActivity"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".MainActivity"
        android:theme="@style/AppTheme"
        />