onCreateのstartActivityForResultがスキップされる

android
onCreateのstartActivityForResultがスキップされる

だから私は本当にここで途方に暮れています。 メインのonCreateでファイルをロードしようとします。ファイルが存在しない場合は、startActivityForResultを呼び出して入力を取得します。 私のコードは、startActivityForResultを完全にスキップします。 LogCatからは何も得られず、コードは続行されます。 ハンドラーなどでstartActivityForResultを呼び出すと機能しますが、アプリでは機能しません。 これが私のコードです。

私のメインのonCreate:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    findViews();
    setListeners();
    Stuffs stuffs = DomUtil.getFullDom(this);
    if (stuffs != null) {
        // do stuff
    }
    else {
        startActivityForResult(new Intent(this, SelectType.class), 0);
        addNew(1, null);
    }
    currentScreen = 1;
}

私が呼び出しようとしているSelectTypeのonCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.selecttype);
    findView();
    setListeners();
}

私はここで何をしていますか? 私が考えることができるのは、onCreateでstartActivityForResultを呼び出すことだけですが、それが行われたチュートリアルを見てきました。 何が起きてる?

  2  0


ベストアンサー

startActivityForResult()は結果を返すことを想定していません。指定されたアクティビティを開始して続行します。 他のアクティビティが結果で終了すると、onActivityResult()メソッドが結果とともに呼び出されます。 アクティビティは非同期に実行されます。

6


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class TestActivityforResultsActivity extends Activity {
/** Called when the activity is first created. */
private final int PICK = 1;
int no1 = 30,no2 = 40;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ((TextView)findViewById(R.id.textView1)).setText("Number1 = "+no1);
    ((TextView)findViewById(R.id.textView2)).setText("Number2 = "+no2);
}

public void startActivity(View view) {
    Intent intent = new Intent();
    intent.setClass(view.getContext(), ResultScreen.class);
    intent.putExtra("no1", no1);
    intent.putExtra("no2", no2);
    startActivityForResult(intent, PICK);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    int str = data.getIntExtra("YourResults", 10);
    ((TextView)findViewById(R.id.textView3)).setText("Result = "+str);
    ((Button)findViewById(R.id.button1)).setText("Result = "+str);
}
}

_
resulClass
_

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class ResultScreen extends Activity{
int resul =0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.result_screen);
    System.out.println("Read This Class....");
    int no1 = getIntent().getIntExtra("no1", 0);
    int no2 = getIntent().getIntExtra("no2", 0);
    resul = no1+no2;
}

public void setResults(View view) {


    Intent intent = new Intent();
    intent.setClass(view.getContext(), TestActivityforResultsActivity.class);
    intent.putExtra("YourResults", resul);
    setResult(RESULT_OK,intent);
    finish();
}
}

0


タイトルとURLをコピーしました