【问题标题】:Entering text in a class, displaying it in another one在一个类中输入文本,在另一个类中显示
【发布时间】:2019-08-31 13:21:54
【问题描述】:

我正在尝试制作一个简单的文本应用程序,以便使用 Java 学习应用程序开发。

我有 2 个课程/活动:DisplayActivity 和 EditActivity。

目标/计划是在 EditActivity 中有一个屏幕,您可以在其中编辑一些编辑文本字段,它会保存它并在您按下确定时退出 EditActivity,按下按钮访问 DisplayActivity,它会显示之前的所有内容输入。

在 EditActivity 中,我引用了文本字段和按钮,并将输入转换为字符串,每个字符串变量都有自己的 getter。 从 DisplayActivity,我创建了一个 EditActivity 对象,它调用 textview 字段上的 getter,这些字段也被正确引用

class EditActivity{
    Button mButton;
    EditText mName;
    DispActivity obj = new DispActivity();

    void onCreate(){
        mButton = (Button)findViewById(R.id.whatever);
        mName   = (EditText)findViewById(R.id.whateveralso);

        mButton.setOnClickListener(new View.onClickListener(){
               @Override
               public void onClick(View v){
                  //does the intent thing where it changes the activity to DispActivity
                  String name = mName.getText().toString();
               }
        });
}

在 DisplayActivity 中,仅引用了名称 textview。

我没有错误代码/消息或警告:一切都可以很好地编译、构建和运行,直到我运行应用程序... DisplayActivity 工作正常,尽管它什么也不显示。但是当我尝试运行 EditActivity 时,它崩溃了……

【问题讨论】:

    标签: java android class text editing


    【解决方案1】:

    一种方法是使用Intent,它就是结果。这是一种在活动之间共享数据的简单方法。

    在您的 DisplayActivity 中,您开始编辑活动:

    Intent i = new Intent(DisplayActivity.this, EditActivity.class);
    startActivityForResult(i); //start edit activity
    

    在您的EditActivity 中,您必须在完成活动之前设置结果:

    Intent returnIntent = new Intent();
    returnIntent.putExtra("result",resultString); //put your result string here
    setResult(Activity.RESULT_OK,returnIntent);
    finish(); //close edit activity
    

    现在在您的DisplayActivity 中,您可以通过执行以下方法获得结果:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
            //display your string here
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //user canceled the edit activity
        }
       }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      相关资源
      最近更新 更多