![](/img/trans.png)
[英]Send data from one Activity to another Activity using Intents
[英]send data from one activity to another activity / fragment via Intents through Custom Adapter for List items in android
我是一名初學者android程序員,我正在制作一個餐廳應用程序,其中包含“一個活動”中特許經營城市的微調器,如果用戶從微調器中選擇了一個城市,然后單擊按鈕,它將顯示以下城市中所選城市的餐館列表另一個活動/片段。 如何通過自定義適配器實現此目標?
答案包括兩部分:-
從第一個活動的微調器中獲取選定的城市ID,然后將其發送到第二個活動中。 對於這一部分,您可以參考@Chaitanya的答案以使用intent在兩個活動之間傳遞信息。
這部分是關於如何使用選定的城市值。 關於您的問題,您必須獲取基於該城市的餐廳列表,並將其放在列表視圖或回收視圖中。 您必須編寫適當的代碼,才能從數據庫或Web服務獲取基於城市的餐廳列表。 之后,只需將List傳遞到此處(在實現listview的第二個活動中):
ListView yourListView = (ListView) findViewById(R.id.itemListView); ListAdapter customAdapter = new ListAdapter(this, R.layout.itemlistrow, <<restaurantList>>); yourListView .setAdapter(customAdapter);
樣品適配器
public class ListAdapter extends ArrayAdapter<Item> {
public ListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}
public ListAdapter(Context context, int resource, List<Item> items) {
super(context, resource, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.itemlistrow, null);
}
Item p = getItem(position);
if (p != null) {
TextView tt1 = (TextView) v.findViewById(R.id.id);
TextView tt2 = (TextView) v.findViewById(R.id.categoryId);
TextView tt3 = (TextView) v.findViewById(R.id.description);
if (tt1 != null) {
tt1.setText(p.getId());
}
if (tt2 != null) {
tt2.setText(p.getCategory().getId());
}
if (tt3 != null) {
tt3.setText(p.getDescription());
}
}
return v;
}
}
這是我在項目中使用的一門課。 您需要收藏要顯示的商品,在您的情況下是餐廳。 您需要重寫View getView(int position,View convertView,ViewGroup parent)方法。
為此,請執行以下操作:
第一步:當用戶點擊“確定”按鈕時
okButton.setOnClickListener(new View.OnClickListener) {
@Override
public void onClick(View v) {
String selectedValue = spinner.getSelectedItem();
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("selectedCity", selectedValue);
startActivity(intent);
}
});
步驟2:現在進入secondActivity oncreate()
@Override
public void onCreate(Bundle s) {
setContentView(R.layout.b);
Intent intent = getIntent();
if(intent != null) {
intent.getStringExtra("selectedCity");
}
}
而已!!! 全部做完..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.