質問

利用したいボタンをクリックでパス選択のパラメータを別のクラスを地図画面を渡されたパラメータ。私のものは私のボタンアクションです。私は使用onCLickListenerとonCLickViewて

Class1:

public class Class1  extends Activity implements OnClickListener {

    Class2 class2;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

..........

       Button button = (Button)findViewById(R.id.btn_configup1);
        button.setOnClickListener(this);        
   }

    public void onClick(View v) {
        Class2 class2 = new Class2();
        //Save state.. selections and params and use bundle
        //to pass into class2
        class2.execMapBuild();

    }    


}


Class2:

公共のクラスのクラス2extends MapActivity{

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.drawable.navup);
}


public void execMapBuild() {    
        finish(); //just in case we return.
        Intent intent = new Intent(CLass2.this, Class2.class);
        startActivity(intent);

    }

私も作業を除き、ご希望のボタンです。また、ボタンをクリックしClass1.onVlickView話クラス2.execMapBuildのボタンをクリックします。私のボタンをクリック撮影の行動の呼び出しexecMapBuild法クラス2.んが、NullPointerExceptionることで移動からstartActivity(趣旨)にonCreate.

していましたその他の方法での釘打ちはこのが、このさわやか近いと思われるコーヒーに飽きたら寿司です。ことに感謝していをご説明いきます。付加コードが最初にコピーされません。

役に立ちましたか?

解決

拡大に関@Heiko Ruppの答えしたい場合は、 Class2 地図を表示するには必要であり、その延長のようなもの Activity.あなただけではできないので通常の方法です。登録をお済ませください。、 Activity にマニフェストはその使用 Intent.ここではサンプルのようなことをやるべきことだと思い:

public class Class1 extends Activity implements OnClickListener {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        Button button = (Button)findViewById(R.id.btn_configup1);
        button.setOnClickListener(this);        
   }

    public void onClick(View v) {
        Intent intent = new Intent(Class1.this,Class2.class);
        intent.putExtra("key","data");
        ...
        startActivity(intent);
    }
}

public class Class2  extends MapActivity {

    String mData;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            mData = extras.getString("key");
            ...
        }
        ...
    }
}

ができますことを示唆して使用説明クラス名以上 Class1Class2.

他のヒント

Class2 アクティビティではないため、アクティビティのコールバックはシステムによって呼び出されません。

そしてそれがあったら Activity, 、あなたはそれを介してそれを呼び出すことはできませんでした new Class2(), 、まだコールバックは実行されていません。

これをきれいにしてから、クラス1からクラス2アクティビティを開始してください Intent あなたが中でやっているように execMapBuild().

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top