【发布时间】:2011-07-31 06:35:11
【问题描述】:
我对 Android SDK 非常陌生,但我已经设法创建了仪表板布局,现在我正在构建每个仪表板按钮后面的活动类/布局。我有点击事件触发和启动相关的按钮活动等(每个按钮 1 个动作)。我还在每个活动布局上都有一个标题栏,允许导航回主仪表板、设置等。基本外观。到目前为止,一切都很好。我现在尝试在活动布局上使用 ListView 来显示来自本地数据库(sqlite)的数据。
在我的 onCreate() 方法中,我使用 SimpleCursorAdapter 尝试将光标(SQL 结果)绑定到布局中的 ListView。根据我之前做的教程(记事本),我实际上在这里使用了 2 种布局。第二种布局是针对光标中存在的每个“行”。问题是,一旦我将 SimpleCursorAdapter 中的布局设置为第二个布局,我就失去了第一个布局中的标题栏功能。显然,如果我尝试在第二个布局中复制标题栏代码,它将在光标中的每个实例中重复。
另外——我所有的“子”活动类都继承自一个从 Activity 继承的基类 (FunDashboardActivity)。由于我的设计,我不能在这里使用 ListActivity 作为基类。再次 - 我对 Android 完全陌生,非常感谢任何反馈/帮助。先感谢您。
这是我的活动代码:
public class FunSitesActivity extends FunDashboardActivity {
private int mSiteNumber = 1;
private FunDbAdapter mDbHelper;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_sites);
mDbHelper = new FunDbAdapter(this);
mDbHelper.open();
fillData();
}
private void fillData() {
// Get Site Data Stored
Cursor c = mDbHelper.fetchAllSites();
startManagingCursor(c);
// Create Cursor Adapter
String[] from = new String[] { FunDbAdapter.KEY_SITE };
int[] to = new int[] { R.id.text1 };
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.site_row, c, from, to);
// Create ListView & Set Cursor
ListView lv = new ListView(this);
lv.setAdapter(notes);
setContentView(lv);
}
//act_site xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout style="@style/TitleBar">
<ImageButton style="@style/TitleBarAction"
android:src="@drawable/title_home"
android:contentDescription="@string/description_about"
android:onClick="onClickHome" />
<ImageView style="@style/TitleBarSeparator" />
<TextView style="@style/TitleBarText" />
<ImageButton style="@style/TitleBarAction"
android:contentDescription="@string/description_config"
android:src="@drawable/title_config"
android:onClick="onClickConfig" />
<ImageButton style="@style/TitleBarAction"
android:contentDescription="@string/description_about"
android:src="@drawable/title_about"
android:onClick="onClickAbout" />
</LinearLayout>
<ListView
android:id="@+id/sitelist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/no_sites"/>
</LinearLayout>
// 站点行xml
<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
【问题讨论】:
标签: android android-listview android-2.2-froyo