【问题标题】:Android - Save text and launching an Activity with the same buttonAndroid - 保存文本并使用相同的按钮启动 Activity
【发布时间】:2013-10-28 16:18:56
【问题描述】:

我目前正在一个 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(new View.OnClickListener(){}, Class) 未定义"

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

提前致谢!!

【问题讨论】:

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


    【解决方案1】:

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

    按钮中的this 是您的OnClickListener,就像错误所说的那样

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-05
        相关资源
        最近更新 更多