2012-04-28 10 views
1

私は本質的に反転可能なカードであるアプリを書いています。両方の側面にヒントがあり、片側がヒント、もう片側がヒントとなっています。 。私の問題は、次のをクリックしてカードをナビゲートすることができますが、画像のためにカードを反転すると、最初のアクティビティがリロードされてから最初に戻ります。問題はどうやって解決できますか?私のコードは: パッケージorg.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); 
    } 
    } 

私は私が戻って財投たときに、私は、データベースから抽出された値awith同じカードを取得する必要があることを望みます。 Plsが助けます。

答えて

0

uが呼び出すのではなく、単一のXMLファイルに次のようにしてください画面display.forを反転する2番目の活動で

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

    <LinearLayout> 
     //back page's elements 
    </LinearLayout> 
</ViewFlipper> 
+0

驚くばかり!それはとても簡単に働いた! :)ありがとうトン。 – Maxsteel

0

ビューでは、フリップする前にデータを保存する以外に方法はありません。あなたはsharedpreferenceまたは単純な変数でデータを保存することができます。しかし、これはあなたがそれをやる方法です。代わりにこれを試してみてください

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

0

をViewFlipperを使用することができます:

public void onClick(View v) { 
    finish(); 
} 
関連する問題