处理android中的多个按钮

时间:2011-06-23 13:33:51

标签: java android

在表格布局中,每行的文本视图和按钮都很少。现在,当我单击某个特定按钮时,只有与该特定按钮相关的文本视图值必须传递给下一个intent.How我可以实现这一点吗?请询问您是否需要任何进一步的信息。

TableLayout tl = (TableLayout) findViewById(R.id.tableLayout1);
        for(i=0;i<count;i++)
        {



                // Create a TableRow and give it an ID
                TableRow tr = new TableRow(this);


                // Create a TextView to house the name of the province
                TextView labelTV = new TextView(this);

                labelTV.setText(smsListDate.get(i));
                labelTV.setTextColor(Color.WHITE);


                // Create a TextView to house the value of the after-tax income
                TextView valueTV = new TextView(this);

                valueTV.setText(smsListMessage.get(i));
                tr.addView(valueTV);
                TextView valueTV2 = new TextView(this);
               valueTV.setTextColor(Color.WHITE);


               Button submit = new Button(this);
               submit.setText("respond");

               tr.addView(submit);

                // Add the TableRow to the TableLayout
                tl.addView(tr, new TableLayout.LayoutParams(
                        LayoutParams.FILL_PARENT,
                        LayoutParams.WRAP_CONTENT));

        }

由于

我想在理解上存在一些差距。我确实已将提交动作写为

submit.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                 Intent myIntent = new Intent(getApplicationContext(),
                 SmsActivity.class);

                 startActivity(myIntent);

            }});

但我现在的意图是将特定行中的文本视图的值带到单击该特定按钮的下一个意图。

3 个答案:

答案 0 :(得分:1)

你需要一个按钮监听器来提交你的提交按钮,在你的onClick方法中你需要将值放在可以传递给下一个意图的包中。

submit.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                //create an intent
                Intent intent = new Intent(ClassYouAreIn.this, 
                                           ClassForNextIntent.class);

                //put the text view value into the bundle for the intent
                //the bundle is a Map and uses key/value pairs 
                //(it is like a dictionary)
                //in this case the key is myTextViewValue 
                //and the value is valueTV.getText()
                intent.putExtra("myTextViewValue", valueTV.getText());

                //now start your new activity with the intent you just made
                startActivity(intent);

           }
});

现在在您的另一个类(新意图将要去的类)中,您将需要访问该包并获取您想要传递给此意图的值。对于这个例子,我将在我的onCreate方法中获取我的包数据,但你可以用你想要的任何方法从包中获取数据。

@Override
public void onCreate(Bundle bundle)
{
    super.onCreate(bundle);
    setContentView(R.layout.your_view);

    //get the extra(s) you put in the bundle
    bundle = getIntent().getExtras(); 

    String valueFromTV = bundle.getString("myTextViewValue");

    //and then do whatever you want with it
}

希望这有助于你

答案 1 :(得分:0)

您需要为按钮创建一个单击侦听器,然后创建意图并添加一个从valueTV文本中获取的字符串。

submit.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
        Intent i = new Intent();
    i.putExtra("value", valueTV.getText());
    startActivity(i);
}
});

答案 2 :(得分:0)

嗯...你的问题对我来说并不完全清楚,但我认为你需要做的是,对于初学者来说,添加一个OnClickListener(我用一个匿名的)来“提交”,然后创建/启动你的其中的意图是onClick(View)方法。您可以使用Intent.putExtra(String,String)传递值。像这样:

submit.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(ThisActivity.this, NextActivity.class);
        intent.putExtra("value", valueTV.getText())
        startActivity(intent);
    }
});