这有点难以解释。基本上它有点像一个简单的游戏。我希望人们输入他们的名字(目前提交按钮不能正常工作)点击提交每个名字,当所有名字都在他们中时,他们点击播放。然后它打开下一堂课。它需要从前一个类中获取字符串数组以及播放器的数量。然后,它需要按顺序选择每个人的名字,并给他们一个任务(它随机生成)。然后它允许其他人点击一个按钮来评分他们的表现。 (我不确定如何设置分数系统。不确定是否有办法为特定的数组字符串分配分数)我会在5轮之后喜欢它以显示获胜者。如果您有任何意见或可以帮助我,我将非常感激。感谢您抽出时间......这是我的两个班级。
第1类
public class Class1 extends Activity
{
int players=0;
String names[];
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.class1);
final EditText input = (EditText) findViewById(R.id.nameinput);
Button submitButton = (Button) findViewById(R.id.submit_btn);
submitButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View submit1)
{
players++;
for(int i=0; i < players; i++)
{
names[i] = input.getText().toString();
input.setText("");
}
}
});
Button doneButton = (Button) findViewById(R.id.done_btn);
doneButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View done1)
{
Intent done = new Intent(Class1.this, Class2.class);
done.putExtra("players", players);
done.putExtra("names", names[players]);
startActivity(done);
}
});
}
第2类
public class Class2 extends Activity
{
int players, counter, score, ptasks,rindex;
String[] names, tasks;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.class2);
Intent game = getIntent();
players = game.getIntExtra("players", 1);
names = game.getStringArrayExtra("names");
Random generator = new Random();
tasks[0]= "task1";
tasks[1]= "task2";
tasks[2]= "task3";
tasks[3]= "task4";
tasks[4]= "task5";
tasks[5]= "task6";
tasks[6]= "task7";
tasks[7]= "task8";
tasks[8]= "task9";
tasks[9]= "task10";
while (counter <5)
{
for (int i = 0; i < players; i++)
{
TextView name1 = (TextView) findViewById(R.id.pname);
name1.setText( names[i]+":");
ptasks = 10;
rindex = generator.nextInt(ptasks);
TextView task = (TextView) findViewById(R.id.task);
task.setText( tasks[rindex]);
}
Button failButton = (Button) findViewById(R.id.fail_btn);
failButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View failed)
{
//not sure what to put here to get the scores set up
}
});
Button notButton = (Button) findViewById(R.id.notbad_btn);
notButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View notbad)
{
//not sure what to put here to get the scores set up
}
});
Button champButton = (Button) findViewById(R.id.champ_btn);
champButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View champp)
{
//not sure what to put here
}
});
counter++;
}
}
我确定这件事充满了错误。我很抱歉,如果是这样,我对程序员的体验并不是很好。再次感谢
答案 0 :(得分:2)
您可以使用Bundle将字符串数组从一个活动传递到另一个活动。
Bundle bundle = new Bundle();
bundle.putStringArray("arrayKey", stringArray);
然后,您可以从下一个活动访问此stringArray,如下所示:
Bundle bundle = this.getIntent().getExtras();
String[] stringArray = bundle.getStringArray("arrayKey");
我不确定这是否是你打算做的唯一事情。我希望它有所帮助。另外,要为特定字符串数组指定分数,假设您的分数为int,则可以使用HashMap,如下所示,
HashMap<String[],int> imageData = new HashMap<String[],int>();
但是我不确定如果你打算这样做,你会如何将这张地图传递给另一个活动。
答案 1 :(得分:1)
答案 2 :(得分:-1)
使用此作弊:
在Class2中,通过添加“|”将数组字符串(任务)转换为字符串(strSavedTask)分隔器。之后,将strSavedTask传递给Bundle并开始Class1。
当返回Class1时,从Bundle读取strSavedTask,将其拆分为“|”。
这是我在2活动之间传递数组的作弊^^
希望这种方式可以帮到你!