如何在android中将数据从一个视图传递到另一个视图?

时间:2012-04-28 07:31:40

标签: java android

我有两个名为first_viewsecond_view的观点。

第一个视图包含一个按钮和一个可编辑的文本视图。第二个视图由单个文本视图组成。

在我的第一个视图中,我想在数据文本视图中添加一个数字。当我点击按钮时,它应该在第二个视图中显示数字。

如何为两个视图编写Java类?

3 个答案:

答案 0 :(得分:2)

我假设您想在相同的Activity中设置文本,如果不是,那么请告诉我,我会改变我的答案。

这是你必须做的。

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);

然后在下一个Activity中执行此操作..

Bundle extras = getIntent().getExtras(); 
String myEtText;

if (extras != null) {
myEtText = extras.getString("edittextvalue");
yourTextView.setText(myEtText);
}

答案 1 :(得分:1)

试试这个, 将您的值放在字符串中:String et_str = EditText.getText().toString();

当你打电话给另一个意图时,

Intent i = new Intent(first_view .class, second_view.class);
i.putExtra("REF",et_str);
StartActivity(i);

在第二个视图中,使用getExtra()

获取此值

答案 2 :(得分:1)

如果在同一个Activity中有两个视图,你可以这样做

    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);
        }

    });

}

关于AnotherActivity:

@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);
    }