0

我目前正在一个 Activity 中工作,它保存来自三个 EditViews 的文本并构造一个 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(new View.OnClickListener (){}, Class) 未定义”

有没有办法在 onClickListener 中启动活动或停止第二个活动开始直到查询被保存?

提前致谢!!

4

2 回答 2

2

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

this在你的按钮是你OnClickListener喜欢的错误说

于 2013-10-28T16:20:19.680 回答
-2

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

于 2013-10-28T16:30:31.267 回答