簡體   English   中英

如何從其他活動中編輯EditText

[英]How to edit an EditText from a different activity

我已經嘗試這樣做至少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

您引用的是活動中不存在的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();
                }
            }
        }
);

然后在保存R.id.codeText的活動的onResume / onCreate(我不知道完整代碼的樣子)中,獲取String並進行設置。

您要編輯的EditText不在當前視圖中,因此將無法訪問。

我不確定您要達到什么目的,但是如果您想在返回上一個活動時在編輯文本中顯示一個值,請嘗試將該值保存到當前活動的共享首選項中,並在onResume中更新EditEtxt它所屬的活動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM