簡體   English   中英

如何設置TextView的文本?

[英]How to set text of TextView ?

我面臨在android中將文本設置為TextView的問題,我的代碼是:

public class Main extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button = (Button) findViewById(R.id.button1);
        final TextView text = (TextView) findViewById(R.id.textView1);
        final EditText input = (EditText) findViewById(R.id.editText1);
        final String string = input.getText();
        button.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                text.setText(string);                   
            }
        });
    }
}

如果我寫

    final Editable string = input.getText();

然后它工作..... !!!!

現在我想將EditText數據發送到下一個Activity如下所示:

public class Main extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button = (Button) findViewById(R.id.button1);
        final TextView text = (TextView) findViewById(R.id.textView1);
        final EditText input = (EditText) findViewById(R.id.editText1);
        final Editable string = input.getText();
        button.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                Intent intent = new Intent(Main.this, Second.class);
                intent.putExtra("thetext", string);
                startActivity(intent);
            }
        });
    }
}

Second.java類中,我以這種方式獲取StringExtra

public class Second extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);

        TextView text = (TextView) findViewById(R.id.textView2);
        String string = getIntent().getExtras().getString("thetext", "not found");
        text.setText(string); /// Here the text is not shown but the default message "not found" is set to `TextView`
    }
}

請指導我繼續開發。

問題應該是,你發送的是Editable ,而不是String 嘗試這個:

final String string = input.getText().toString();

我認為問題是你實際上在意圖中放置了“可編輯”,而不是字符串。 雖然很接近,但它們並不是一回事。 如果你toString()你的Editable得到一個String對象並把它放在intent中,你應該能夠像你一樣用getString將它取回。

     private TextView mTextView;
     private String mString;

mTextView = (TextView) findViewById(R.id.tv);
mString = "hello everyone ! how r u?";
mTextView.setText(mString);

嘗試這樣的事情:

public class Main extends Activity {
    EditText input;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView text = (TextView) findViewById(R.id.textView1);
        input = (EditText) findViewById(R.id.editText1);

        Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(Main.this, Second.class);
                intent.putExtra("thetext", input.getText().toString());
                startActivity(intent);
            }
        });
    }
}

(提示:發布代碼的最簡單方法是粘貼代碼,選擇代碼,然后使用crtl + k縮進/格式化代碼。)

根據android文檔,放入額外內容的字符串名稱必須包含一個包前綴...即som.arshay.dev.thetext其次,getExtras()返回一個包,而不是你添加的包。 你需要getStringExtra( name )

在這一行使用

final String string = input.getText().toString(); 

代替

final String string = input.getText();

暫無
暫無

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

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