2013-08-07 66 views
0

我有2個ListView在我的佈局和一個普通的行佈局爲它和行是重複多次。我很困惑我將如何識別兩個ListView哪個結果被選中,以及如何我將得到TextViews的數據是在兩個listView中都選中。Android中的ListView選擇?

這是我的ListView XML

<LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/footerLayout" 
     android:layout_below="@+id/sortFlightLayouts" 
     android:orientation="horizontal" > 

     <ListView 
      android:id="@+id/lvDepartures" 
      android:layout_weight="1" 
      android:layout_marginLeft="5dp" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content"/> 
     <View 
      android:layout_width="1dp" 
      android:layout_height="wrap_content" 
      android:background="@android:color/darker_gray" /> 
     <ListView 
      android:id="@+id/lvArrivals" 
      android:layout_weight="1" 
      android:layout_marginLeft="5dp" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content"/> 

    </LinearLayout> 

而且這是我在這兩個列表視圖

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:id="@+id/flightLogo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginBottom="5sp" 
     android:layout_marginRight="10sp" 
     android:layout_marginTop="5sp" 
     android:layout_marginLeft="5dp" 
     android:src="@drawable/spicejet" /> 

    <TextView 
     android:id="@+id/flightCompanyName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/flightLogo" 
     android:text="SpiceJet" /> 

    <TextView 
     android:id="@+id/flightNumber" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/flightCompanyName" 
     android:text="9W-123" /> 

    <TextView 
     android:id="@+id/flightTime" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="8dp" 
     android:layout_marginLeft="12dp" 
     android:layout_toRightOf="@+id/flightLogo" 
     android:gravity="center_vertical" 
     android:text="6:00 - 7:00" /> 

    <TextView 
     android:id="@+id/flightStop" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/flightTime" 
     android:layout_toRightOf="@+id/flightLogo" 
     android:layout_marginLeft="12dp" 
     android:text="1h 35m | Non Stop" /> 

    <TextView 
     android:id="@+id/amount" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/flightStop" 
     android:layout_below="@+id/flightStop" 
     android:layout_marginLeft="10dp" 
     android:layout_toRightOf="@+id/flightCompanyName" 
     android:text="Rs 20,000" /> 

</RelativeLayout> 

而且在我把我的Activity.java

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.test); 
    ArrayList<HashMap<String, String>> flightData = new ArrayList<HashMap<String, String>>(); 
    for (int i = 0; i < 12; i++) { 
     // creating new HashMap 
     HashMap<String, String> map = new HashMap<String, String>(); 

     // adding each child node to HashMap key => value 
     map.put(FlightCompanyName, "SpiceJet"); 
     map.put(FlightNumber, "SG-123"); 
     map.put(FlightTime, "6:00 - 7:00"); 
     map.put(FlightStop, "1h 30m | Non Stop"); 
     map.put(FlightCost, "Rs 12,000"); 

     // adding HashList to ArrayList 
     flightData.add(map); 
    } 


    onewayListView=(ListView)findViewById(R.id.lvDepartures); 

    ReturnListView=(ListView)findViewById(R.id.lvArrivals); 

    // Getting adapter by passing xml data ArrayList 
    onewaydata=new OneWayFlightResult(this, flightData);   
    onewayListView.setAdapter(onewaydata); 

    returndata=new ReturnFlightResult(this, flightData);   
    ReturnListView.setAdapter(returndata); 
    } 

該行佈局這個設計更多的解釋是飛行結果。因此,如果用戶正在尋找往返路線,我會向他展示2 r一個左側,另一個右側。現在我想要那個用戶可以從左側列表中選擇一個航班,並從右側選擇一個航班。一旦他選擇了航班,我必須得到所選航班的數據。怎麼可能我這樣做。請幫我

回答

1
SparseBooleanArray checked; 

lvDialog.setOnItemClickListener(new OnItemClickListener() { 

@Override 
public void onItemClick(AdapterView<?> arg0, View arg1, 
int arg2, long arg3) { 
// TODO Auto-generated method stub 

checked = lvDialog.getCheckedItemPositions(); 


if(checked.get(arg2)) 
{ 
chkText.setTextColor(Color.CYAN); 
colorRow ++; 
} 
else 
{ 
chkText.setTextColor(Color.BLACK); 
colorRow--; 
} 
} 
}); 

哎這裏是一些代碼...嘗試

+0

我用我們的代碼它顯示在不同的列表視圖1,2,3,4。怎麼我會得到TextViews – Developer

+0

textview.setText(listData)... –

+0

setOnItemClickListener值的那一行中的值已經設置好了,我想要獲得點擊的特定行的值 – Developer