2014-04-12 3 views
1

첫 액티비티에 텍스트 뷰가 있고 두 번째 액티비티를 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); 





    } 
+0

뭐가 잘못 됐나요? ListItem을 기록하려고 했습니까? 값을 받고 있습니까? 귀하의 질문은 매우 모호합니다 –

+1

Intent i = new Intent();를 사용하여 새 Intent를 작성한 다음'listItem = i.getStringExtra ("sendHeader"); '문자열에 여분이 있습니까? 그것이 데이터를받는'Activity' 코드 인 경우'Activity'를 시작하기 위해 사용 된'Intent'를 제공하는'getIntent()'를 사용해야합니다. – Squonk

답변

0

u는 다시 한 초기화 의도를 전달하고 명확한 지난 가게마다 전화를 얻는 당신의 ArrayList를 선언 문제 값을 사용하면 이전에 저장된 값을 얻지 않아서 가장 좋은 방법은 다른 클래스의 arraylist를 선언하고받은 값을 해당 arraylist에 추가하여 어댑터에 전달하는 것입니다.

+0

그 방법에 대한 정보? –

+0

클래스 내부의 클래스 생성 예 : 클래스 내의 TempValue public static ArrayList orderList = new ArrayList (); OrderActivity 활동 내에서 orderList.add (listItem);를 바꿉니다. TempValues.orderList.add를 사용하여 (listItem); –

+0

문제가 해결되면 대답을 수락하십시오. –

관련 문제