我仍然对Android编码很新,并试图解决问题。我正在动态创建一个listview,如下所示(然后动态禁用项目) - 你会注意到活动本身没有xml文件,只是为了列表项目。
我想要做的是向页面添加静态标头。有人可以向我解释如何修改下面的代码,以便在listView之前以编程方式在java文件中添加它,或编辑下面的代码,使其以xml文件中的listView为目标!
非常感谢帮助!!!
public class Start extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DataBaseHelper myDbHelper = new DataBaseHelper(null);
myDbHelper = new DataBaseHelper(this);
try {
myDbHelper.openDataBase();
}catch(SQLException sqle){
throw sqle;
}
ArrayList<String> categoryList = new ArrayList<String>();
Cursor cur = myDbHelper.getAllCategories();
cur.moveToFirst();
while (cur.isAfterLast() == false) {
if (!categoryList.contains(cur.getString(1))) {
categoryList.add(cur.getString(1));
}
cur.moveToNext();
}
cur.close();
Collections.sort(categoryList);
setListAdapter(new ArrayAdapter<String>(this, R.layout.listitem, categoryList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if(Arrays.asList(checkArray3).contains(String.valueOf(position))){
view.setEnabled(false);
} else {
view.setEnabled(true);
}
return view;
}
});
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
if(v.isEnabled()) {
String clickedCat = l.getItemAtPosition(position).toString();
Toast.makeText(this, clickedCat, Toast.LENGTH_SHORT).show();
finish();
Intent myIntent = new Intent(getApplicationContext(), Questions.class);
myIntent.putExtra("passedCategory", clickedCat);
myIntent.putExtra("startTrigger", "go");
startActivity(myIntent);
}
}
}
答案 0 :(得分:0)
您需要为显示列表的活动创建其他XML文件。它可能看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:scaleType="fitXY"
android:src="@drawable/view"/>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/homeLogo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitStart"
android:src="@drawable/logo" />
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout1"
android:layout_centerHorizontal="true"
android:cacheColorHint="#00000000">
</ListView>
</RelativeLayout>
您拥有的是显示列表视图的活动的XML布局,您可以在其中添加静态标头。我为我正在构建的应用做了同样的事情。从那里您可以在您正在使用的活动中引用此XML。希望这可以帮助。