レイアウトに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 つのフライト。彼がフライトを選択したら、選択したフライトのデータを取得する必要があります。