如何编辑来自不同活动的EditText

时间:2015-10-11 09:46:26

标签: java android

我现在已经尝试了至少40分钟,这是我的最后一个来源。

好的,我正在尝试编辑来自不同活动的edittext。

在第一个档案中:

(编辑名称为codeText的文本)

EditText code = (EditText)findViewById(R.id.codeText);

(稍微减少)

Button tools = (Button)findViewById(R.id.toolsBtn);

    tools.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    EditText code = (EditText)findViewById(R.id.codeText);
                    Intent intent = new Intent(v.getContext(), startNET.class);
                    intent.putExtra("code", code.getText().toString());
                    startActivity(intent);
                }
            }
    );

在startNET中(我试图编辑editText的其他文件):

Intent intent = getIntent();
final String full_code = intent.getStringExtra("code");

(一点点)

plyerInvinc.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    try {
                        String code = full_code + "\n test";
                        EditText code_text = (EditText)findViewById(R.id.codeText);
                        code_text.setText(code);
                        goBackToNew(v); // this is a function for switching activities.
                    } catch (Exception e) {
                        Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
                    }
                }
            }
    );

这会返回此错误: error

2 个答案:

答案 0 :(得分:1)

您正在引用您的活动中不存在的EditClass,然后尝试为其设置文本。所以你得到一个空指针异常。

如果我理解你应该做的是将值传递给:

plyerInvinc.setOnClickListener(
        new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    String code = full_code + "\n test";
                    //Here pass code to the activity in which you want to set the EDitText                
                    goBackToNew(v); // this is a function for switching activities.
                } catch (Exception e) {
                    Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
                }
            }
        }
);

然后在onResume / onCreate(我不知道你的完整代码看起来如何)持有R.id.codeText的活动获取String并设置它。

答案 1 :(得分:0)

您尝试编辑的EditText不在当前视图中,因此无法访问。

我不确定您要尝试的是什么,但如果您想要在返回上一个活动时在编辑文本中显示值,请尝试将值保存在当前活动的共享首选项中并更新您的{ {1}}在其所属的EditEtxt个活动中。{/ p>