2013-08-07 33 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