Android アプリケーションで動作する別の画面があります。これには ViewFlipper を使用しています。ビューの子ごとに異なるクラスを使用することにしました
public main extends Activity{
{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sign_in);
ViewFlipper viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);
HomeScreen s = new HomeScreen(getApplicationContext(), getCurrentFocus(), viewFlipper);
}
}
これは Homescreen クラスです:-
public class HomeScreen {
private Button signIn;
private Button createAccount;
private View v;
private Context context;
private ViewFlipper viewflipper;
public HomeScreen(Context context,View v,ViewFlipper viewflipper ) {
this.v=v;
this.context = context;
this.viewflipper = viewflipper;
signIn = (Button) v.findViewById(R.id.button_sign_in_homeScreen);
createAccount = (Button)v.findViewById(R.id.button_createAccount_homeScreen);
signIn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
viewflipper.setDisplayedChild(1);
}
});
}
しかし、実行例外 java.lang.RuntimeException: Unable to start activity ComponentInfo を示して
いる
私が実装しようとしているのは
- ビューフリッパーの各子のコントロールを定義、リッスンするために異なるクラスを使用する必要があります
- 上記の例では、HomeScreen はビュー フリッパーの子画面の 1 つです。
- しかし、行
v.findViewById
にエラーが表示されています getCurrentFocus() はビューを送信する正しい方法ではないと思います
天気がわからないのですが、正しい方法で移動していますか? そのviewflpperを定義するクラスでviewflipperのすべての子のすべてのコントロールを定義してリッスンすると、そのクラスは非常に大きくなります。そう思わせてくれました..
ありがとう...