ボタンを使用して、選択パラメータを渡された別のクラスに渡し、渡されたパラメータを使用してマップ画面を構築します。私は自分のボタンアクションを働かせることに集中しています。別のクラスを呼び出すために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:
パブリッククラスClass2には、私はすべてが必要なボタンアクションを除いて働いてい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);
}
を拡張し、次のように私はonCLickListenerとonCLickViewを使用します。私は、Class1.onVlickViewのボタンクリックが、ボタンクリックアクションを使ってClass2.execMapBuildを呼び出すようにします。ボタンをクリックしてアクションをキャプチャし、Class2でexecMapBuildメソッドを呼び出します。しかし、startActivity(intent)からonCreateに移動するときにNullPointerExceptionが発生します。
私はこれを釘打ついくつかの方法を試しましたが、これは最高のようです。私は本当に何が欠けているかも説明していただきありがとうございます。 最初にコピーされなかったコードが追加されました。
ここに窓にコードをコピーするのが私のせいです。実際のコードでは、Class2はMapActivityを拡張しています。 – apesa
同じ原則が適用されますが、 'new'キーワードを使用して直接インスタンス化することはできず、そのメソッドを直接呼び出すことはできません。あなたは 'Intent'を作成し、' startActivity() 'を呼び出す必要があります。 –
実際にClass2はMapActivityを拡張します。私はClass1とClass2をそれをよりきれいにするために置き換えました。私は本当にClass1.onClickViewからClass2.execMapBuildに行う最良の方法を知りたいと思っています。 execMapBuioldでは、ItemizedOverlayのデータを作成します。いったんやったら、私はonCreateに移動したい。私は誰も混乱させないことを願っています。 – apesa