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

行。我认为问题是,您没有在 onCreate() 中调用 setContentView()。

所以很明显,Android 不知道在哪里寻找ImageView那个 id,你很可能会遇到空指针。

添加setContentView() 到您的onCreate()前 thsi 行,

 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 回答