私は非常にプログラミングに新しいと私のコードは醜い場合はごめんなさい申し訳ありません。別のメソッドでfindViewById変数を使用する方法。 JavaのAndroid
表示される画像を変更する左右の矢印ボタンを持つ画面のようなメニューを作成しようとしています。最初の画像で左矢印が消え、最後の画像が表示されているときに右矢印が消えたときに、そのようにしたいと思います。
私はこれを多くの方法でやろうとしましたが、解決できないところでいつも変数が必要になってしまいました。投稿されたコードでは、switchステートメントにエラーがあり、未解決の変数エラーをonClickListenerにコード化しようとしました。
あなたは私のためにそれをコード化する必要はありません、私が逃している概念を知らせてください、そして私はそれについて勉強します。これは動作するはず
おかげ
package com.mystuff.mymenu;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
public class PictureMenu extends Activity implements OnClickListener{
int setView = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.picture_menu);
menuSet(setView);
ImageButton right = (ImageButton) findViewById(R.id.rightButton);
ImageButton left = (ImageButton) findViewById(R.id.leftButton);
right.setOnClickListener(this);
left.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.rightButton){
setView ++;
menuSet(setView);
if(v.getId() == R.id.rightButton){
setView ++;
menuSet(setView);
}
}
}
private void menuSet(int setView) {
ImageView picture1 = (ImageView) findViewById(R.id.picture1);
ImageView picture2 = (ImageView) findViewById(R.id.picture2);
ImageView picture3 = (ImageView) findViewById(R.id.picture3);
ImageView picture4 = (ImageView) findViewById(R.id.picture4);
switch(setView){
case 1:
left.setVisibility(View.GONE); //ERROR left cannot be resolved
right.setVisibility(View.VISIBLE); //ERROR right cannot be resolved
picture1.setVisibility(View.VISIBLE);
picture2.setVisibility(View.GONE);
picture3.setVisibility(View.GONE);
picture4.setVisibility(View.GONE);
break;
case 2:
left.setVisibility(View.VISIBLE); //ERROR left cannot be resolved
right.setVisibility(View.VISIBLE); //ERROR right cannot be resolved
picture1.setVisibility(View.GONE);
picture2.setVisibility(View.VISIBLE);
picture3.setVisibility(View.GONE);
picture4.setVisibility(View.GONE);
break;
case 3:
left.setVisibility(View.VISIBLE); //ERROR left cannot be resolved
right.setVisibility(View.VISIBLE); //ERROR right cannot be resolved
picture1.setVisibility(View.GONE);
picture2.setVisibility(View.GONE);
picture3.setVisibility(View.VISIBLE);
picture4.setVisibility(View.GONE);
break;
case 4:
left.setVisibility(View.VISIBLE); //ERROR left cannot be resolved
right.setVisibility(View.GONE); //ERROR right cannot be resolved
picture1.setVisibility(View.GONE);
picture2.setVisibility(View.GONE);
picture3.setVisibility(View.GONE);
picture4.setVisibility(View.VISIBLE);
break;
default:
left.setVisibility(View.GONE); //ERROR left cannot be resolved
right.setVisibility(View.VISIBLE); //ERROR right cannot be resolved
picture1.setVisibility(View.VISIBLE);
picture2.setVisibility(View.GONE);
picture3.setVisibility(View.GONE);
picture4.setVisibility(View.GONE);
break;
}
}
}