0

我正在尝试解析通过 content1 或 content2 搜索的网站,具体取决于单击了哪个按钮。我有一个运行良好的算法,但我被要求在两个类中进行。我希望它不会让我改变我的整个算法。但是,我在向新活动发送字符串参数时遇到了麻烦,我讨厌它。

我定义了全局参数:

String content1;
String content2;

我需要在名称为“namesurname”和“district”的 EditText 中获取字符串:

content1 = district.getText().toString();
content2 = namesurname.getText().toString();

我有两个有监听器的按钮:

    search1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent search = new Intent(FirstActivity.this, SecondActivity.class);
            search.putExtra("param_a", content1);
                    startActivity(search);
        }               
    });
    search2.setOnClickListener(new View.OnClickListener() {         
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent search = new Intent(AvukatParserActivity.this, ParserActivity.class);
            search.putExtra("param_b", content2);
        startActivity(search);
        }
    });

从现在开始,我的 SecondActivity.class 出现了。

我正在尝试在新活动中获得意图:

    Intent search = getIntent();
    String location = search.getStringExtra("param_a");
    String name_surname = search.getStringExtra("param_b");

这是我检查内容的方法1:

Toast.makeText(this, location, Toast.LENGTH_LONG).show();

它与 content2 一样为 null。没有错误,没有警告。我不明白我做错了什么。提前致谢。

4

3 回答 3

1

把这条线

 search1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           content1 = district.getText().toString(); //if district is gloaal and has been set in onCreate
            Intent search = new Intent(FirstActivity.this, SecondActivity.class);
            search.putExtra("param_a", content1);
                    startActivity(search);
        }               
    });
于 2012-06-08T08:19:23.203 回答
0

你可以做

Bundle bundle=new Bundle();//make it global
search1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           content1 = district.getText().toString(); //if district is gloaal and has been set in onCreate
            Intent search = new Intent(FirstActivity.this, SecondActivity.class);
            bundle.putString("param_a",content1);
            search.putExtras(bundle);
                    startActivity(search);
        }               
    });
search2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           content2 = namesurname.getText().toString(); //if district is gloaal and has been set in onCreate
            Intent search = new Intent(FirstActivity.this, SecondActivity.class);
            bundle.putString("param_b",content2);
            search.putExtras(bundle);
                    startActivity(search);
        }               
    });

在第二个活动 onCreate

Budle bundle=this.getIntent().getExtras();

String username=bundle.getString("param_b");
String location=bundle.getString("param_a");
于 2012-06-08T08:37:34.870 回答
0
  1. 每个侦听器都只将一个值而不是两个都放入意图中,并且 toast 只显示其中一个。

  2. 关于这段代码:

    content1 = district.getText().toString();
    content2 = namesurname.getText().toString();
    

    把它放在 onClick 方法中,然后告诉我们它是否有帮助。我猜你把旧值放在那里,所以它得到 null 而不是更新的值。

于 2012-06-08T08:22:41.730 回答