1

私は本質的に裏返すことができるカードであるアプリを書いています。両側に特定の関連データがあり、一方にヒント、もう一方に画像があります。データの両側が関連しています。私の問題は、次をクリックしてカードをナビゲートできることです。しかし、カードを裏返して写真を撮ると、最初のアクティビティがリロードされてから最初に戻ります。どうすれば問題を解決できますか?私のコードは次のとおりです。packageorg.v2.greTouch;

import java.io.IOException;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;

public class FlipCard extends Activity  implements View.OnClickListener {
/** Called when the activity is first created. */
 Cursor cur;
TextView tv;
DbH db;
ImageButton next,back;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    tv=(TextView)findViewById(R.id.TV_Word);
    next=(ImageButton)findViewById(R.id.next);
    back=(ImageButton)findViewById(R.id.back);
    next.setOnClickListener(this);
    back.setOnClickListener(this);
    LinearLayout turn;
    turn=(LinearLayout)findViewById(R.id.LL_Card);
    turn.setOnClickListener(this);
    try {
        db=new DbH(this);
    } catch (IOException e2) {

        e2.printStackTrace();
    }


        try {
            db.createdatabase();
        } catch (IOException e) {

            e.printStackTrace();
        }

     db.opendatabase();
     cur=db.data();
     cur.moveToFirst();
     tv.setText(cur.getString(0));

 }
  @Override
  public void onClick(View v) {

switch(v.getId())
{
case R.id.next :
    if(cur.isLast())
    {
        cur.moveToFirst();
        tv.setText(""+cur.getString(0));
    }
    else
    {
        cur.moveToNext();
    tv.setText(""+cur.getString(0));

    }
break;
case R.id.back:
{
    if(cur.isFirst())
    {
        cur.moveToLast();
        tv.setText(""+cur.getString(0));
    }
    else {cur.moveToPrevious();
    tv.setText(""+cur.getString(0));
    }
    break;
}
case R.id.LL_Card:
{
    Intent i=new Intent(this,FlashCard_back.class);
    startActivity(i);
}
}
}
}

ロードされる反対側は:

   import android.app.Activity;
   import android.content.Intent;
   import android.os.Bundle;
   import android.view.View;
   import android.view.View.OnClickListener;
   import android.widget.LinearLayout;
   import android.widget.TextView;
    public class FlashCard_back extends Activity implements OnClickListener{
   /** Called when the activity is first created. */
   @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_back);
    LinearLayout layMain = (LinearLayout) findViewById(R.id.FlashCardRear);
    layMain.setOnClickListener(this);
     }
     public void onClick(View v) {
    Intent i=new Intent(this,FlipCard.class);
    startActivity(i);
     }
     }

私が戻ってきたときに、データベースから抽出された値を持つ同じカードを取得する必要があります。plsは助けます。

4

3 に答える 3

0

ビューでは、フリップする前にデータを保存する以外に方法はありません。データを共有設定またはプレーン変数に保存できます。しかし、これはあなたがそれをする方法です。

于 2012-04-28T19:20:08.133 に答える
0

uは、ViewFlipperを使用して画面表示を反転できます。そのためには、単一のxmlファイルで次のようにします。

<ViewFlipper>
    <LinearLayout>
          //front page's elements
    </LinearLayout>

    <LinearLayout>
         //back page's elements
    </LinearLayout>
</ViewFlipper>
于 2012-04-28T19:24:00.803 に答える
0

電話ではなく、2番目のアクティビティで:

public void onClick(View v) {
    Intent i=new Intent(this,FlipCard.class);
    startActivity(i);
}

代わりにこれを試してください:

public void onClick(View v) {
    finish();
}
于 2012-04-28T19:24:52.980 に答える