[英]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.