我有两个名为:first_view
和second_view
.
第一个视图由一个按钮和一个可编辑的文本视图组成。第二个视图由单个文本视图组成。
在我的第一个视图中,我想在可数据文本视图中放置一个数字。当我单击按钮时,它应该在第二个视图中显示数字。
如何为这两个视图编写 Java 类?
如果在同一个活动中有两个视图,你可以这样做
Button btn;
EditText txtInput;
TextView txtShow;
//btn=firstView.findViewWithTag(tag)
btn=firstView.findViewById(R.id.**);
txtInput=firstView.findViewById(R.id.**);
txtShow=secondView.findViewById(R.id.**);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String input=txtInput.getText().toString();
txtShow.setText(input);
}
});
如果您有两个活动:
Button btn;
EditText txtInput;
String VALUE_KEY="show";
private void test()
{
btn=(Button)findViewById(R.id.**);
txtInput=(Button)findViewById(R.id.**);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String input=txtInput.getText().toString();
Intent intent=new Intent(this, AnotherActivity.Class);
intent.putExtra(VALUE_KEY, input);
}
});
}
在另一个活动上:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent=this.getIntent();
String value=intent.getStringExtra(VALUE_KEY);
TextView view=(TextView)findViewById(R.id.txt);
view.setText(value);
}
我假设你想在同一个活动中设置文本,如果不是这样,那么告诉我,我会改变我的答案。
这是你必须做的。
public class MyActivity extends Activity {
Button btn;
EditText et;
TextView tv;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button)findViewById(R.id.yourbtnID);
et = (EditText) findViewById(R.id.yourEtID);
tv = (TextView) findViewById(R.id.yourtvID);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String myText = et.getText().toString();
tv.setText(myText);
}
});
}
}
如果要在两个活动之间传递文本,请使用Intent
.
在您当前Activity
执行此操作。
Intent i = new Intent(YourCurrentActivity.this, YourNextActivity.class);
String str = yourEditText.getText().toString();
i.putExtra("edittextvalue" , str);
startActivity(i);
然后在下一个活动中执行此操作..
Bundle extras = getIntent().getExtras();
String myEtText;
if (extras != null) {
myEtText = extras.getString("edittextvalue");
yourTextView.setText(myEtText);
}
试试这个,把你的价值放在字符串中:String et_str = EditText.getText().toString();
当你调用另一个意图时,
Intent i = new Intent(first_view .class, second_view.class);
i.putExtra("REF",et_str);
StartActivity(i);
在第二个视图中,使用getExtra()