質問
利用したいボタンをクリックでパス選択のパラメータを別のクラスを地図画面を渡されたパラメータ。私のものは私のボタンアクションです。私は使用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");
...
}
...
}
}
ができますことを示唆して使用説明クラス名以上 Class1
や Class2
.
他のヒント
Class2
アクティビティではないため、アクティビティのコールバックはシステムによって呼び出されません。
そしてそれがあったら Activity
, 、あなたはそれを介してそれを呼び出すことはできませんでした new Class2()
, 、まだコールバックは実行されていません。
これをきれいにしてから、クラス1からクラス2アクティビティを開始してください Intent
あなたが中でやっているように execMapBuild()
.