2016-03-23 100 views
-2

我有一個主要活動和一個結果以及一個結果..... 我想從活動結果再結果到結果1。 但我的代碼似乎不工作請幫助!從編輯文本中獲取文本到另一個活動

這是mainactivity ////////

public class MainActivity extends SampleActivityBase { 

// Whether the Log Fragment is currently shown 
private boolean mLogShown; 
public static final String TAG = "MainActivity"; 

EditText cardnumber; 
TextView foodorders; 
Button btnorder; 
private static final int REQUEST_CODE = 10; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    cardnumber = (EditText) findViewById(R.id.card_account_field); 
    cardnumber.setText(AccountStorage.GetAccount(getBaseContext())); 
    cardnumber.addTextChangedListener(new AccountUpdater()); 
    foodorders = (TextView) findViewById(R.id.foodordershow); 
    btnorder = (Button) findViewById(R.id.buttonorder); 


    btnorder.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      String strcardnumber = cardnumber.getText().toString(); 
      Intent intent = new Intent(MainActivity.this, activityresult1.class); 
      intent.putExtra("Card Number:", strcardnumber); 
      startActivityForResult(intent, REQUEST_CODE); 
     } 
    }); 

} 

private class AccountUpdater implements TextWatcher { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     // Not implemented. 
    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     // Not implemented. 
    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     String account = s.toString(); 
     AccountStorage.SetAccount(getBaseContext(), account); 
    } 

這是結果1

public class activityresult1 extends Activity { 


EditText frq, fnq, foodordershow; 
Button suborder; 
TextView noodlequantity, ricequantity; 
private static final int REQUEST_CODE = 10; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_activityresult2); 

    fnq = (EditText) findViewById(R.id.fnq); 
    frq = (EditText) findViewById(R.id.frq); 
    noodlequantity = (TextView) findViewById(R.id.noodlequantity); 
    ricequantity = (TextView) findViewById(R.id.ricequantity); 
    suborder = (Button) findViewById(R.id.suborder); 


    suborder.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      String strnoodlequantity = noodlequantity.getText().toString(); 
      String strricequantity = ricequantity.getText().toString(); 
      Intent intent = new Intent(getApplicationContext(), activityresult2.class); 
      intent.putExtra("Noodle quantity", strnoodlequantity); 
      intent.putExtra("Rice quantity", strricequantity); 
      startActivityForResult(intent, REQUEST_CODE); 
     } 
    }); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) { 
     if (data.hasExtra("Food Ordered:")) { 
      String result = data.getExtras().getString("Food Ordered:"); 
      if (result != null && result.length() > 0) { 
       foodordershow.setText("Food Ordered: " + result); 
      } 
     } 
    } 
} 

,最後結果2

public class activityresult2 extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_activityresult1); 

    Bundle extras = getIntent().getExtras(); 
    String strfnq = extras.getString("Noodle Quantity"); 
    String strfrq = extras.getString("Rice Quantity"); 
    TextView foodorders = (TextView) findViewById(R.id.foodordershow); 
    foodorders.setText(getIntent().getExtras().getString("Quantity")); 

    foodorders = (TextView) findViewById(R.id.foodordershow); 
    foodorders.setText("Welcome, " + strfnq + " + strfrq + "); 
    finish(); 


} 
+0

你是什麼這行的意思是「我想去導致活動,然後到來自結果1的result2。但我的代碼似乎不工作請幫助!「 –

+1

JavaScript標記在這個問題上做什麼?? –

+0

什麼是REQUEST_CODE,爲什麼你使用它。? –

回答

0

我想,也許你可以嘗試使用Bundle打包數據

mainactivity

public class MainActivity extends SampleActivityBase { 

// Whether the Log Fragment is currently shown 
private boolean mLogShown; 
public static final String TAG = "MainActivity"; 

EditText cardnumber; 
TextView foodorders; 
Button btnorder; 
private static final int REQUEST_CODE = 10; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    cardnumber = (EditText) findViewById(R.id.card_account_field); 
    cardnumber.setText(AccountStorage.GetAccount(getBaseContext())); 
    cardnumber.addTextChangedListener(new AccountUpdater()); 
    foodorders = (TextView) findViewById(R.id.foodordershow); 
    btnorder = (Button) findViewById(R.id.buttonorder); 


    btnorder.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      String strcardnumber = cardnumber.getText().toString(); 
      Intent intent = new Intent(MainActivity.this, activityresult1.class); 
      intent.putExtra("Card Number:", strcardnumber); 
      //if you need to let activityresult1 back to MainActivity with data, you can use startActivityForResult, if not just use startActivity(intent). 
      startActivityForResult(intent, REQUEST_CODE); 
     } 
    }); 

} 

private class AccountUpdater implements TextWatcher { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     // Not implemented. 
    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     // Not implemented. 
    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     String account = s.toString(); 
     AccountStorage.SetAccount(getBaseContext(), account); 
    } 

這是結果1

public class activityresult1 extends Activity { 


EditText frq, fnq, foodordershow; 
Button suborder; 
TextView noodlequantity, ricequantity; 
private static final int REQUEST_CODE = 10; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_activityresult2); 

    fnq = (EditText) findViewById(R.id.fnq); 
    frq = (EditText) findViewById(R.id.frq); 
    noodlequantity = (TextView) findViewById(R.id.noodlequantity); 
    ricequantity = (TextView) findViewById(R.id.ricequantity); 
    suborder = (Button) findViewById(R.id.suborder); 


    suborder.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      String strnoodlequantity = noodlequantity.getText().toString(); 
      String strricequantity = ricequantity.getText().toString(); 
      Intent intent = new Intent(getApplicationContext(), activityresult2.class); 
      Bundle bundle = new Bundle(); 
      bundle.putString("Noodle quantity", strnoodlequantity); 
      bundle.putString("Rice quantity", strricequantity); 
      //intent.putExtra("Noodle quantity", strnoodlequantity); 
      //intent.putExtra("Rice quantity", strricequantity); 
      intent.putExtras(bundle); 
      startActivityForResult(intent, REQUEST_CODE); 
     } 
    }); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) { 
     if (data.hasExtra("Food Ordered:")) { 
      String result = data.getExtras().getString("Food Ordered:"); 
      if (result != null && result.length() > 0) { 
       foodordershow.setText("Food Ordered: " + result); 
      } 
     } 
    } 
} 

,最後結果2

public class activityresult2 extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_activityresult1); 

    Bundle extras = getIntent().getExtras(); 
    String strfnq = extras.getString("Noodle Quantity"); 
    String strfrq = extras.getString("Rice Quantity"); 
    TextView foodorders = (TextView) findViewById(R.id.foodordershow); 
    foodorders.setText(getIntent().getExtras().getString("Quantity")); 

    foodorders = (TextView) findViewById(R.id.foodordershow); 
    foodorders.setText("Welcome, " + strfnq + " + strfrq + "); 
    //finish(); 


} 
+0

完成()是關閉活動....所以把它放在正確的地方 – Hsieh

+0

我發現我的問題。是活動主後我的按鈕無法提交併將我轉移到結果1頁面。 –

+0

對不起,我不知道你是什麼意思,但在你調用startActivity(intent);或startActivityForResult(intent,REQUEST_CODE)之後; ,它會將您轉移到另一個活動 – Hsieh

相關問題