我目前正在使用一个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中启动活动或者在保存查询之前停止第二个活动?
提前致谢!!
答案 0 :(得分:2)
如果您将意图放在onClick按钮上而无法使用this
,则需要使用YourActivity.this
来正确获取上下文。
this
是OnClickListener
,如错误所示
答案 1 :(得分:-2)
在哪里/如何调用ReadResults方法?在旁注 - 它是否需要公开?如果你在clickListener处理程序中调用它,那就错了。 1)从clickListener处理程序中提取代码,并将其放入活动类中的私有方法中。 2)您的clickListener应该只调用该私有方法。 3)你可以让你的3个编辑框作为你活动的成员,并在每次点击按钮时将它们实例化为onCreate()而不是获取它们,如果没有必要,解析UI是很昂贵的。