我正在写一个基本上是可以翻转的卡的应用程序。双方都有一些相关数据说明一边提示,另一边有图片。数据的两面都是相关的。我的问题是我可以浏览卡片通过单击下一步,但当我翻转卡片的图片时,我回到开头,因为第一个活动重新加载。我怎么能解决这个问题?我的代码是: 包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);
}
}
我希望当我回复时,我应该从数据库中获取相同的卡片值。 请帮忙。
答案 0 :(得分:0)
使用视图除了在翻转之前保存数据之外别无他法。您可以将数据保存在共享首选项或纯变量中。但这就是你要做的。
答案 1 :(得分:0)
你可以使用ViewFlipper来翻转屏幕显示。为了在单个xml文件中执行以下操作,
<ViewFlipper>
<LinearLayout>
//front page's elements
</LinearLayout>
<LinearLayout>
//back page's elements
</LinearLayout>
</ViewFlipper>
答案 2 :(得分:0)
在你的第二个活动中,而不是打电话:
public void onClick(View v) {
Intent i=new Intent(this,FlipCard.class);
startActivity(i);
}
请改为尝试:
public void onClick(View v) {
finish();
}