按钮在android活动中不可见

时间:2014-03-01 14:17:02

标签: android xml

以下xml代码中的按钮完全不可见。有人可以指导我出错的地方吗?

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <Button
        android:id="@+id/addBtn"
        android:text="Add New Item"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="addItems"
    />
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:drawSelectorOnTop="false"
    />
 </LinearLayout>

oncreate()如下:

ArrayList<String> listItems=new ArrayList<String>();
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    adapter=new ArrayAdapter<String>(MainActivity.this,R.layout.abc, listItems);
    setListAdapter(adapter);
}

3 个答案:

答案 0 :(得分:0)

超级之后和“adapter...”之前,请在onCreate()

中调用它
setContentView(R.layout.your_layout);  

致电setContentView() ...

         // We'll define a custom screen layout here (the one shown above), but
         // typically, you could just use the standard ListActivity layout.
         setContentView(R.layout.custom_list_activity_view);  

来自:http://developer.android.com/reference/android/app/ListActivity.html

另外,请认为传递给适配器的列表项是空的(你检查过吗?)

答案 1 :(得分:0)

试一试 -

  ArrayList<String> listItems=new ArrayList<String>();
    ArrayAdapter<String> adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout);
        adapter=new ArrayAdapter<String>(MainActivity.this,R.layout.abc, listItems);
        setListAdapter(adapter);
    }

您可能没有为视图设置布局。因此,不仅按钮而且整个视图都不可见。为清楚起见,您可以在视图中添加任何内容,但根本不会显示。

另请注意,如果不是上述情况,那么请查看您是否已将可见性设置为隐藏或已在代码中的某处。

这只是编程问题,因为您提供的xml文件是正确的。

答案 2 :(得分:0)

你忘记了setContentView(R.layout.yourlayout);

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.yourlayout); //Add this line
      adapter=new ArrayAdapter<String>(MainActivity.this,R.layout.activity_main, listItems);
      setListAdapter(adapter);
     }