0

私はまだAndroidコーディングにかなり慣れておらず、物事を理解しようとしています。以下に示すように、リストビューを動的に作成しています(そして、アイテムを動的に無効にします)-アクティビティ自体のxmlファイルはなく、listitemだけです。

私がやりたいのは、静的ヘッダーをページに追加することです。誰かが私に以下のコードを変更して、これをプログラムで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);
        }
    }


}
4

1 に答える 1

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 を参照します。お役に立てれば。

于 2012-07-02T21:13:15.950 に答える