0

ロゴを左揃えにし、右側にカテゴリのリストを表示するアプリに取り組んでいます。だから私が持っているのは、線形レイアウトにある画像ビューのロゴです。次に、ListView を LinearLayout にも追加して、同じアクティビティにできるようにします。実行しようとすると、予期しない停止エラーが発生します。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Commands.setText("Commands");
    LinearLayout LL = new LinearLayout(this);

    ImageView Logo = (ImageView)findViewById(0x7f020000);
    Logo.setImageDrawable(getResources().getDrawable(android.R.drawable.ic_menu_myplaces));

    ListView Cats = new ListView(this);

    String Categories[] = new String[3];
    Categories[0] = "Hardware";
    Categories[1] = "Language";
    Categories[2] = "Libraries";
    ArrayAdapter<String> list = new ArrayAdapter<String>(this, 0, 2, Categories);

    Cats.setAdapter(list);
    LL.addView(Logo);
    LL.addView(Cats);
    setContentView(LL);

}

助けてください、私は本当に混乱しています

4

2 に答える 2

0

Ok。問題は、onCreate() で setContentView() を呼び出していないことだと思います。

明らかに、Android はImageViewその ID でどこを探すべきかを認識していないため、おそらく Null Pointer に遭遇します。

この行の前に追加setContentView() します。onCreate()

 ImageView Logo = (ImageView)findViewById(0x7f020000);
于 2012-07-26T05:02:38.977 に答える
0

Android でレイアウトを作成する最も簡単な方法は、xml の res/layout フォルダーにレイアウトを作成し、onCreate メソッドをロードするときにそれをインフレートすることです。たとえば、次の xml は、探しているものを実現する可能性があります。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="horizontal" >
    <ImageView
      android:id="@+id/(name for image view)"
      android:layout_width="(some size)"
      android:layout_height="(some size)"
     >
    </ImageView>

    <ListView
      android:id="@+id/(name for list view)"
      android:layout_width="(some size)"
      android:layout_height="fill_parent">
    </ListView>
<LinearLayout>

xml を使用したレイアウトの作成に関する多くのチュートリアルを見つけることができるはずです。

于 2012-07-26T05:16:20.590 に答える