0

我希望活動的右側顯示不同的項目,具體取決於選擇左側列表視圖的哪個項目。我能夠遵循Android ListView示例,其中列表視圖佔據整個活動屏幕,但無法將其展開爲分屏。這裏是我的xml,左邊是列表視圖,右邊是一個簡單的按鈕。我無法弄清楚將填充我的列表視圖的代碼。如何在一側製作帶有列表視圖的分屏幕

system_status.xml:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/activity_system_status" 
     android:title="@string/system_status" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="horizontal"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:layout_weight="1"> 

     <ListView 
     android:id="@+id/my_list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     </ListView> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:layout_weight="1"> 
     <ToggleButton android:text="ToggleButton" android:id="@+id/toggleButton1" android:layout_width="wrap_content" android:layout_height="wrap_content"></ToggleButton> 
    </LinearLayout> 
    </LinearLayout> 

UPDATE: 我想通了與鐮刀的帖子的幫助。這是使它工作的代碼。上面的xml按原樣運行。

public class SystemStatusActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ListView lv = (ListView) findViewById(R.id.my_list); 
    String[] stats = getResources().getStringArray(R.array.array_system_status); 
    lv.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, stats)); 
} 
} 

list_item.xml:

 <?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:textSize="16sp" > 
</TextView> 
+0

在原始代碼中,我實際上有LinearLayout包裝器,由於某種原因,它只是沒有出現在代碼塊中。我改變了間距,現在顯示出來了。仍然在列表視圖上工作。 – yellavon 2011-04-12 20:05:06

回答

1

你必須建立和適配器爲ListView控件。搜索有關創建自定義Adapter類的教程,您可以找到其中幾十個。如果您打算爲此平臺開發,您絕對必須瞭解自定義適配器。

但不管怎麼說,你可以逃脫標準ArrayAdapter獲得這個工作:

String[] countries = <put your strings here> 
yourList.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, countries)); 

在此之後,建立一個ItemClickListener的名單,並根據需要處理在右窗格中的內容變化。

0

試着這麼做

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal"> 
The above block was new 
<LinearLayout 
    android:layout_width="0dp" <--BIG CHANGE HERE 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:layout_weight="1"> 

    <ListView 
    android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    </ListView> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="0dp" Big change here 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:layout_weight="1"> 
    <ToggleButton android:text="ToggleButton" android:id="@+id/toggleButton1" android:layout_width="wrap_content" android:layout_height="wrap_content"></ToggleButton> 
</LinearLayout> 

</Linearlayout> NEW 

這裏最大的變化是改變了你有linearlayouts的layout_width,所以它們均勻分攤的空間,而且我也把他們都在一個水平線性佈局。

0

http://www.anddev.org/view-layout-resource-problems-f27/two-listviews-side-by-side-t11199.html

差不多隻需要包你有什麼用android:orientation="horizonal"一個LinearLayout

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       > 
    <LinearLayout android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        > 
     <ListView android:id="@+id/list" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        android:entries="@array/colors" 
        /> 
    </LinearLayout> 
    <LinearLayout android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        > 
     <TextView android:id="@+id/text" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        android:text="Hello World, AndroidTest" 
        /> 
    </LinearLayout> 
</LinearLayout> 
相關問題