2012-07-02 25 views
0

我对android编码还很陌生,并试图弄清楚事情的真相。我如下所示动态创建一个listview(然后动态地禁用项目) - 您会注意到,活动本身没有xml文件,仅用于listitem。Android:将标题添加到动态列表

我想要做的是添加一个静态头到页面。有人可以向我解释我可以如何修改下面的代码,以便将它编程添加到java文件中,在listView之前,或者编辑下面的代码,以便它在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

您需要为显示列表的活动创建一个附加的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。希望这可以帮助。