Android - 保存文本并使用相同的按钮启动活动

时间:2013-10-28 16:18:56

标签: android button android-intent android-activity onclicklistener

我目前正在使用一个Activity来保存来自三个EditView的文本并构造一个SQL查询。之后,查询将被提供给另一个活动以搜索并显示结果。

现在我有两个按钮,一个用于保存查询,一个用于onClickListener,另一个按钮用于启动第二个活动:

searchButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            //First the data from the editviews is saved    
            EditText searchName = (EditText) findViewById(com.pedro.books.R.id.search_name);
            search_name = searchName.getText().toString();
            searchName.setText("");
            EditText searchAut = (EditText) findViewById(com.pedro.books.R.id.search_aut);
            search_aut = searchAut.getText().toString();
            searchAut.setText("");
            EditText searchYea = (EditText) findViewById(com.pedro.books.R.id.search_yea);
            search_yea = searchYea.getText().toString();
            searchYea.setText("");

            //here i construct the query    
    });

使用xml代码中的onClick,我使用另一个按钮启动活动:

public void ReadResults(View view){
    //The query is given to the ReadActivity to display the results
    Intent intent = new Intent(this, ReadActivity.class);
    intent.putExtra(ReadActivity.EXTRA_QUERY, query);
    startActivity(intent);
}

我尝试使用相同的按钮而不改变任何东西它显然不起作用,我也尝试在onClickListener中启动活动,但是我收到了这个错误:“构造函数Intent(新的View.OnClickListener(){},Class)未定义“

有没有办法在onClickListener中启动活动或者在保存查询之前停止第二个活动?

提前致谢!!

2 个答案:

答案 0 :(得分:2)

如果您将意图放在onClick按钮上而无法使用this,则需要使用YourActivity.this来正确获取上下文。

按钮中的

thisOnClickListener,如错误所示

答案 1 :(得分:-2)

在哪里/如何调用ReadResults方法?在旁注 - 它是否需要公开?如果你在clickListener处理程序中调用它,那就错了。 1)从clickListener处理程序中提取代码,并将其放入活动类中的私有方法中。 2)您的clickListener应该只调用该私有方法。 3)你可以让你的3个编辑框作为你活动的成员,并在每次点击按钮时将它们实例化为onCreate()而不是获取它们,如果没有必要,解析UI是很昂贵的。