2013-04-01 100 views
1

我的应用程序使用一个按钮,当点击时该按钮转到显示列表视图的新活动。所有这些似乎工作正常。但是列表视图显示在与按钮相同的活动之上。它不单独显示。所以我看到背景和重叠列表视图中的主要活动!这个问题能解决吗?我的代码如下: 按钮单击事件:ListView显示错误

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=""/> 

提前感谢!

回答

2

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

编辑:

活动并不完全是透明的,请检查您是否正确的styles.xml定义appTheme,并确保你不使用Android:主题=“@安卓风格/主题。半透明“或”#00XXXXXX“颜色在样式或清单文件中的任何位置。

如果一切与风格OK,然后我不知道为什么你的ListActivity仍然是透明的,但你可以通过设置以下布局内容查看更改此:

<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)); 
+0

欣赏迅速答复。由于我没有使用任何定义的xml布局,所以我仍然不清楚如何做到这一点。即时通讯不使用setContentView(R.layout ...) – Aditya

+0

我试过你说的,但结果仍然是一样的!显示在现有活动上的列表! :( – Aditya

-1

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

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" >