0

レイアウトに2つのListViewがあり、そのための1つの共通行レイアウトがあり、行が複数回繰り返されています.ListViewの両方でどの結果が選択されているかを特定する方法と、選択されているTextViewsのデータを取得する方法について混乱しています両方のリストビュー。

これは私の 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>

そして、これは私がこれら2つのListViewsに入れている行レイアウトです

<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);
    }

もう少し説明すると、このデザインはフライト結果用です。したがって、ユーザーがラウンドトリップを検索している場合、左側に 1 つ、右側にもう 1 つ 2 つの結果を表示します。ユーザーが左側のリストから 1 つのフライトを選択できるようにしたいのですが、右側から 1 つのフライト。彼がフライトを選択したら、選択したフライトのデータを取得する必要があります。

4

1 に答える 1

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--;
}
}
});

ちょっとここにいくつかのコードがあります...試してください

于 2013-08-07T05:47:32.277 に答える