첫 액티비티에 텍스트 뷰가 있고 두 번째 액티비티를 listview에 전달할 수 없습니다. 나는 음식 이름을 가지고 메뉴에 추가하려고합니다. 아래는 저의받는 활동입니다. 아무도이 문제를 해결할 수있는 방법을 말해 줄 수 있습니까? 사전에 많은 감사Android : 버튼 하나를 클릭하여 다른 액티비티의 ListView에 TextView 추가
FoodItemActivity.java
public class FoodItemActivity extends Activity {
private TextView foodHeader;
private TextView foodPrice;
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.food_layout_screen);
// connect menuHeader to menuListHeaderTextview for the header, receives the intent from MainActivity below
foodHeader = (TextView) findViewById(R.id.foodItemHeader);
Intent i = getIntent();
String menuItem = i.getStringExtra("childItem");
foodHeader.setText(menuItem);
addToOrderBtn();
viewOrderBtn();
}
// add to order button
public void addToOrderBtn(){
Button addToOrder_Btn= (Button) findViewById(R.id.btn_addToOrder);
addToOrder_Btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0){
foodHeader = (TextView)findViewById(R.id.foodItemHeader);
//foodPrice = (TextView)findViewById(R.id.foodItemPrice);
String sendHeader = foodHeader.getText().toString();
//String sendPrice = foodPrice.getText().toString();
Intent myIntent = new Intent(FoodItemActivity.this, OrderActivity.class);
myIntent.putExtra("sendHeader", sendHeader);
//myIntent.putExtra("sendPrice", sendPrice);
startActivity(myIntent);
}
});
}
// view order button
public void viewOrderBtn(){
Button viewOrder_Btn= (Button) findViewById(R.id.btn_viewOrder);
viewOrder_Btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0){
Intent myIntent = new Intent(FoodItemActivity.this, OrderActivity.class);
startActivity(myIntent);
}
});
}
OrderACtivity.java
public class OrderActivity extends ListActivity {
public ArrayList<String> orderList = new ArrayList<String>();
private String[] list;
private ArrayAdapter<String> adapter;
private ListView lv;
private String listItem;
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.order_screen);
Intent i = new Intent();
listItem = i.getStringExtra("sendHeader");
// adds the received sata to ArrayList orderList
orderList.add(listItem);
// assign lv to order_screen's ListView component order_list
lv = (ListView) findViewById(R.id.order_list);
// convert ArrayList orderList to Array
list = (String[]) orderList.toArray();
// assign adapter to "this" context, with the layout page order_list_item, and the info obtained in list
adapter = new ArrayAdapter<String>(this, R.layout.order_list_item, list); //R.id.order_food_name);
// set the data behing lv to adapter
adapter.notifyDataSetChanged();
lv.setAdapter(adapter);
}
뭐가 잘못 됐나요? ListItem을 기록하려고 했습니까? 값을 받고 있습니까? 귀하의 질문은 매우 모호합니다 –
Intent i = new Intent();를 사용하여 새 Intent를 작성한 다음'listItem = i.getStringExtra ("sendHeader"); '문자열에 여분이 있습니까? 그것이 데이터를받는'Activity' 코드 인 경우'Activity'를 시작하기 위해 사용 된'Intent'를 제공하는'getIntent()'를 사용해야합니다. – Squonk