【问题标题】:Data passing between two activities repetitively两个活动之间重复传递的数据
【发布时间】:2018-04-06 11:38:17
【问题描述】:

我是 android studio 的初学者,我想编写一个包含 3 个活动的代码。 第一个用于启动应用程序。第二个用于显示英文单词,第三个用于显示英文单词及其在两个文本中的描述。

我想把英文单词本身的数据和它的描述和单词的个数一一显示出来。

我在教程剪辑的帮助下编写了代码,但它不起作用,并且在第三个活动中没有显示任何内容。

这些是我的代码:

主要活动:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void start(View view)
    {
        Intent i = new Intent(this,ActivityOne.class);
        startActivity(i);
    }
}

ActivityOne

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class ActivityOne extends AppCompatActivity {

    int a=0;
    String E , P;

    private Button show;
    private TextView Eword;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_one);
        Eword = (TextView) findViewById(R.id.Eword);
        show = (Button) findViewById(R.id.show);

    }
    public void show(View view)
    {

        Intent intent = new Intent(this,ActivityTwo.class);
        startActivity(intent);
        int a = getIntent().getIntExtra("counter",0);
        Eword.setText(Eng[a]);
        E = Eword.getText().toString();
        P = Fa[a];
        a++;
        intent.putExtra("counter",a);
        intent.putExtra("EWord",E);
        intent.putExtra("PWord",P);

    }

    private String[] Eng = {
            "Abundance",
            "Anxiety",
            "Bruxism",
            "Discipline",
            "Drug Addiction"
    };
    private String[] Fa = {
            "Abundance Description",
            "Anxiety Description",
            "Bruxism Description",
            "Discipline Description",
            "Drug Addiction Description"
    };
}

ActivityTwo

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class ActivityTwo extends AppCompatActivity {
    TextView Eng , Fa;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        Eng = (TextView) findViewById(R.id.eng);
        Fa  = (TextView) findViewById(R.id.fa);

        // recieve data from activity one
        String EWord = getIntent().getStringExtra("EWord");
        String PWord = getIntent().getStringExtra("PWord");
        int a = getIntent().getIntExtra("counter",0);

        Eng.setText(EWord);
        Fa.setText(PWord);
    }

    public void iknow(View view)
    {
        Intent myIntent = new Intent(this,ActivityOne.class);
        startActivity(myIntent);
        int a = getIntent().getIntExtra("counter",0);
        myIntent.putExtra("counter",a);
    }
    public void idknow(View view)
    {
        Intent myIntentTwo = new Intent(this,ActivityOne.class);
        startActivity(myIntentTwo);
        int a = getIntent().getIntExtra("counter",0);
        myIntentTwo.putExtra("counter",a);
    }
}

它显示了这个结果:

It is the third activity and it can clear the pretext that was set in design page but can not replace EWord or PWord

有人可以帮帮我吗????

【问题讨论】:

    标签: java android-intent android-activity transfer


    【解决方案1】:

    (1) 为了让您开始,您需要在开始活动之前将变量放入意图中。 (2)。我认为让活动一开始二,然后可以开始一,这不是一个好主意。最好只关闭第二个活动,然后自动返回到一个。 (3) 要将数据传回您要返回的活动,您需要 startActivityForResult https://developer.android.com/training/basics/intents/result.html

    活动一使用 startActivityForResult 启动活动二。活动二返回一个意图(即结果意图),活动一在 onActivityResult 中收到此意图。

    看看这个:Android: how to make an activity return results to the activity which calls it?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-25
      • 2012-10-06
      • 1970-01-01
      • 2014-11-01
      • 2013-05-12
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      相关资源
      最近更新 更多