我有一个(可能很小)的问题。我的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。
答案 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"
/>