Java 如何让这个字符串数组传递给下一个类并被使用

Java 如何让这个字符串数组传递给下一个类并被使用,java,android,arrays,Java,Android,Arrays,这很难解释。基本上这就像一个简单的游戏。我想让人们输入他们的名字(目前提交按钮不能正常工作)点击每个名字的提交,当所有名字都在播放时,他们点击播放。然后打开下一节课。它需要从前面的类中获取字符串数组以及玩家数量。然后,它需要按顺序选择每个人的名字,并给他们一个任务(它随机生成)。然后,它允许其他人点击一个按钮,对他们的表现进行评分。(我不确定如何设置分数系统。不确定是否有方法将分数分配给特定数组字符串)然后,我希望它在5轮后显示获胜者。如果您有任何意见或可以帮助我,我将不胜感激。谢谢你抽出时间。

这很难解释。基本上这就像一个简单的游戏。我想让人们输入他们的名字(目前提交按钮不能正常工作)点击每个名字的提交,当所有名字都在播放时,他们点击播放。然后打开下一节课。它需要从前面的类中获取字符串数组以及玩家数量。然后,它需要按顺序选择每个人的名字,并给他们一个任务(它随机生成)。然后,它允许其他人点击一个按钮,对他们的表现进行评分。(我不确定如何设置分数系统。不确定是否有方法将分数分配给特定数组字符串)然后,我希望它在5轮后显示获胜者。如果您有任何意见或可以帮助我,我将不胜感激。谢谢你抽出时间。。。这是我上的两门课

第一类

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);
        }
    });
}
公共类Class1扩展活动
{  
整数=0;
字符串名[];
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.class1);
最终EditText输入=(EditText)findViewById(R.id.nameinput);
按钮提交按钮=(按钮)findViewById(R.id.submit_btn);
submitButton.setOnClickListener(新视图.OnClickListener()
{
公共void onClick(视图submit1)
{
玩家++;
对于(int i=0;i
第二类

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++;
    }


}
公共类2扩展活动
{
国际球员,计数器,分数,ptasks,rindex;
字符串[]名称、任务;
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.class2);
Intent game=getIntent();
players=game.getIntExtra(“players”,1);
名称=game.getStringArrayExtra(“名称”);
随机生成器=新随机();
任务[0]=“任务1”;
任务[1]=“任务2”;
任务[2]=“任务3”;
任务[3]=“任务4”;
任务[4]=“任务5”;
任务[5]=“任务6”;
任务[6]=“任务7”;
任务[7]=“任务8”;
任务[8]=“任务9”;
任务[9]=“任务10”;
而(计数器使用此作弊:

  • 在Class2中,通过添加“|”分隔符将数组字符串(任务)转换为字符串(strSavedTask)。然后,将strSavedTask传递到Bundle并开始Class1

  • 当返回到Class1时,从Bundle中读取strSavedTask,并用“|”分割它

这是我在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>();
HashMap imageData=newhashmap();

但我不确定如果您打算这样做,您将如何将此地图传递给另一个活动。

谢谢您的所有输入。我很感激。我正在进行一次测试,我只是想让它在编辑文本后单击“提交”和“播放”按钮时不会强制关闭。这样我就知道效果有多好了。:)