0

だから私はgridviewに画像を持っています。これらの画像はアクティビティで表示されます。画像の1つをクリックすると、この画像で新しいアクティビティが開始されます。このアクティビティでは、ユーザーが正解を入力すると、正解を示す新しいアクティビティが開始されます。ユーザーが正解を入力した後、gridwiewのチェックマークを付けてこの画像をより透明に設定したいと思います。ユーザーがこの正しいビューをもう一度クリックした場合、正しく解決されたことを示す同じアクティビティを表示したいと思います。どうやってやるの?

グリッドビューを含む私のアクティビティは次のとおりです。

public class LogoSelectionActivity extends Activity {
.
.
 gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

             Intent intent = new Intent(LogoSelectionActivity.this, LogoActivity.class);
             intent.putExtra ("clicked_position", position);
             startActivity(intent);
}

ユーザーが入力を入力する私のアクティビティは次のとおりです。

public class LogoActivity extends Activity{

EditText text;
Button check;
Boolean a;
int id;
Names name;
@Override

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_logo);
    check = (Button) findViewById(R.id.Check_button);
    text = (EditText) findViewById(R.id.editText1);
    ImageView view = (ImageView)findViewById(R.id.imageView1);
    final ImageView incorrect = (ImageView)findViewById(R.id.incorrect);
    switch (getIntent().getIntExtra ("clicked_position", -1))
    {
      case 0:
        view.setImageResource(R.drawable.adese);
        id = R.drawable.adese;
        break;
      case 1:
         view.setImageResource(R.drawable.birvar);
         id = R.drawable.birvar;
         break;
      case 2:
         view.setImageResource(R.drawable.agaoglu);
         break;
      case 3:
          view.setImageResource(R.drawable.akinsoft);
          break;
      default:
         view.setImageResource(R.drawable.afra);
         id = R.drawable.afra;
    }
    name = Names.forDrawable(id);
    check.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            a=name.isCorrect(text.getText().toString());
            if(a==true){
            Intent intent = new Intent(LogoActivity.this, CorrectActivity.class);
            startActivity(intent);
            }
            else{
                incorrect.setVisibility(0);
                incorrect.setVisibility(4);
            }
        }
        });
    }
}

私の意図を明確に説明できればと思います。

4

1 に答える 1

1

これを行うにはいくつかの方法があります。これは問題ではないので、これはプロジェクトに必要な機能です。

私の論理によれば、私はあなたに一つの解決策を与えています。

手順:

  1. デフォルト値が0のグリッドビューでアイテムの長さを持つ静的配列を1つ作成します。

     static int[] items = {0,0,0,...};
    
  2. 次に、配列内の位置に応じた値を使用してグリッドビューのメソッドをチェックインしgetViewます。0の場合は通常のように見え、そうでない場合は異なって見えます(チェックボックスで透明にしたい場合は、画像をもう1つ追加することで取得できます)それ。)

    If(items[position] == 0){
    
    }else{
    
    }
    
  3. ここで、ユーザーが任意の画像をタップして他の画面(アクティビティBを想定)に移動すると、その配列からその位置の値が経過し、アクティビティBがチェックインされOnCreate()ます。

    gridview.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    
         Intent intent = new Intent(LogoSelectionActivity.this, LogoActivity.class);
         intent.putExtra ("clicked_position", position);
         intent.putExtra ("answered_or_not", items[position]);
    
         startActivity(intent);
    }
    
  4. そして、答えられた場合は、その値が1であるかどうかを意味し、それに応じて他の方法でそのまま表示します。

  5. そして、ユーザーが未回答の質問に答えるときは、その配列の値を1にします。

ご不明な点がございましたら、お気軽にお問い合わせください。

于 2013-03-03T12:36:03.237 に答える