Android에서 2 가지 활동간에 데이터를 전달하는 방법에 대한 몇 가지 질문을 읽었지만 여러 단계를 통과하는 방법에 대해서는 설명하지 않았습니다. 나는 2 가지 행동 사이를 어떻게 지나가는지를 알았을 때 그것이 간단 할 것이라고 생각했지만, 이상하게도 그것을하지 않았다.Android 용으로 서로 쌓은 활동간에 데이터를 전달하는 방법은 무엇입니까?
주 활동의 하위 활동 만 통과하면 모든 것이 정상적으로 작동합니다. 그러나 주 활동에서 활동을 호출하면 다른 활동을 호출하고 데이터를 전달하지 않습니다. 첫 번째 활동을 입력 (즉, 첫 번째 하위 활동에서 주까지 호출 된 활동)하고 결과가 반환되기 전에 종료되면 첫 번째로 호출 된 활동이 계속되는 문제입니까?
3 층으로 데이터를 전달하려고하지만 맨 위 활동에서 MainActivity로 전달되는 데이터는 없습니다. 도움말 감사.
MainActivity.java
Intent constIntent = new Intent(MainActivity.this, ConstantScreen.class);
startActivityForResult(constIntent, 1); //Start activity - Rest is done onActivityResult....
break;
//
...........................
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
constData= data.getStringExtra("constData2Main");
String constStackData = switchSignPow(constData);
inputStack.add(constStackData); inputDisplay.add(constData);
cursorPosition += constData.length(); ++stackPosition; ++inputDisplayCursor;
printInStack();
inputText.setSelection(cursorPosition);
}
}
그런 다음 활동 : 문제의에서 오는 어디 중간 활동에
ClassicalMehcanics.java
public class ClassicalMechanics extends Activity{
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.classical_mechanics);
}
String constData;
public void onClick_Constant(View v){
Intent intent = new Intent();
switch(v.getId()){
case(R.id.CancelClassic):
setResult(RESULT_CANCELED, intent);
break;
default:
constData= ((Button)findViewById(R.id.GRAVITYC)).getTag().toString();
intent.putExtra("constData", constData);
setResult(RESULT_OK, intent);
break;
}
finish();
}
}
Ofcourse, 좋은 설명 주셔서 감사합니다! Activity2에서 onActivityResult (...)에 finish()를 배치했습니다. 그런 다음 설명대로 활동을 기다려야합니다. – Euklides