我是Android开发的新手,但我尽我所能。
我想创建一个应用程序,为2支队伍打一场纸牌游戏:
活动1:进行出价
活动2:评估游戏结果
活动3:显示一个包含团队得分的列表(2列)
从Activity1开始,直到有人赢了。
所以我有activity1将数据传递给activity2(使用带有意图的putExtra) Activity2评估了出价并计算了Team1和Team2的得分。 该数据正在传递给activity3。
在这里,我想展示一个包含每轮分数的列表。
但是当我再次转到activity1时,我在哪里/如何保存该列表数据?
我已经在玩一个新类,它应该扩展应用程序,但我不知道如何实例化该类以及如何使它可以从每个活动中访问?
这是我的manifest.xml => extradata作为一个新类:
<application
android:allowBackup="true"
android:icon="@drawable/notrump"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name="extradata">
<activity
这个类的设置如下:
public class extradata extends Application{
public static ArrayList<scoredata> scoring = new ArrayList<scoredata>();
@Override
public void onCreate()
{
super.onCreate();
}
scoredata类看起来像这样:
public class scoredata {
private int mScoreteam1;
private int mScoreteam2;
private String mBidteam1;
private String mBidteam2;
public scoredata(int pScoreteam1, int pScoreteam2, String pBidteam1, String pBidteam2){
mScoreteam1 = pScoreteam1;
mScoreteam2 = pScoreteam2;
mBidteam1 = pBidteam1;
mBidteam2 = pBidteam2;
}
public int getScoreteam1(){
return mScoreteam1;
}
public int getScoreteam2(){
return mScoreteam2;
}
public String getBidteam1(){
return mBidteam1;
}
public String getBidteam2(){
return mBidteam2;
}
public void setScoreteam1(int pScoreteam1){
mScoreteam1 = pScoreteam1;
}
public void setScoreteam2(int pScoreteam2){
mScoreteam2 = pScoreteam2;
}
public void setBidteam1(String pBidteam1){
mBidteam1 = pBidteam1;
}
public void setBidteam2(String pBidteam2){
mBidteam2 = pBidteam2;
}
所以我现在有一个应用程序启动时创建的scoredata的arraylist? 如果是这样,我如何访问字段或从我的活动中添加项目?
答案 0 :(得分:0)
您可能希望将类实现为数据存储区,并使其成为单例,以便您的3个活动中的每个活动都可以访问数据并对其进行修改。 我不知道它是否是解决问题的最佳方案,但它很简单。
答案 1 :(得分:0)
如果您只想将新添加的值从activity2传递给activity1,则可以使用意图。 使用startactivityforesult(intent,requestcode)调用第二个活动。获取新值后,使用setresult()从活动2传递结果。
在activity1中的onActivityResult()函数中更新你的arraylist(即添加新项)。 使用adapter.setnotifychanged使更新反映在listview中。