ListView显示错误

时间:2013-04-01 14:38:47

标签: android listview

我的应用程序使用一个按钮,单击该按钮会转到显示列表视图的新活动。所有这一切似乎都很好。但是列表视图与按钮一起显示在同一活动的顶部。它不单独显示。所以我看到了背景中的主要活动和重叠的列表视图!这个问题可以解决吗?我的代码如下: 按钮CLick事件:

view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i = new Intent(Assignments.this, ViewEntry.class);
            startActivity(i);
        }
    });

列表视图代码:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.database_view);
    //ListView lv = (ListView)findViewById(R.id.listView1);
    dbControl = new DatabaseControl(ViewEntry.this);
    dbControl.open();
    ArrayList<String> data = dbControl.getData();
    if (data.equals(null)) {
        Toast.makeText(ViewEntry.this, "Database Empty!", Toast.LENGTH_LONG)
                .show();
    } else {
        final Dialog notice = new Dialog(this);
        final TextView msgbox = new TextView(this);
        //ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,data);
        setListAdapter(new ArrayAdapter<String>(ViewEntry.this,
                android.R.layout.simple_list_item_1, data));
        final ListView listView = getListView();
        //lv.setAdapter(arrayAdapter);
        //lv.setTextFilterEnabled(true);
    }
}

我的xml代码如下。但我不认为它有所作为,因为我没有使用setContentView。使用setContentView(R.layout.database_view);会返回调试错误。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:background="#000000"
android:fadingEdge="vertical"
android:orientation="vertical" >

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true">
</ListView>

<TextView 
    android:id="@+id/textViewDatabase"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""/>

提前致谢!

3 个答案:

答案 0 :(得分:2)

将第二个活动布局的背景颜色更改为不透明。当你开始第二个Activity时,第一个被暂停并进入后台但仍然存在,就像显示对话框一样。

修改

默认情况下,Activity不是透明的,检查你是否在styles.xml中正确定义了appTheme,并确保你没有在任何地方使用android:theme =“@ android:style / Theme.Translucent”或“#00XXXXXX”颜色在您的样式或清单文件中。

如果样式一切正常,那么我不知道为什么ListActivity仍然是透明的,但你可以通过将以下布局设置为contentView来改变它:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ad_catalog_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#888888" <!-- example non-transparent color -->
    android:orientation="vertical" >

    <ListView
        android:id="@android:id/list" <!-- has to be @android:id/list for ListActivity -->
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</LinearLayout>

或通过设置ListView背景颜色:

getListView().setBackgroundColor(Color.rgb(xxx, xxx, xxx));

答案 1 :(得分:0)

尝试使用非透明色

,而不是使用透明背景色

尝试以下代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:background="#b3b3b3"
android:fadingEdge="vertical"
android:orientation="vertical" >

答案 2 :(得分:-1)

使用Intent转到其他活动并在新活动中创建列表视图。 使用按钮触发意图。