当前位置: 首页 > 知识库问答 >
问题:

在实现onClickListener时尝试获取按钮文本

裴心水
2023-03-14

我是android的新手,所以我希望我听起来不会太笨,也就是说,我做了一个片段,专门为XML中的按钮实现了OnclickListener。我需要默认的onclick函数来将按钮的文本保存为字符串,但是我还没有弄清楚如何从视图中检索按钮的文本。这将帮助我为我要做的每一个按钮做一个if语句。有什么建议吗?

import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.support.v4.app.Fragment;

public class Section1Fragment extends Fragment implements View.OnClickListener {
    private static final String TAG = "Section1Fragment";

    Button btnItem1;
    Button btnItem2;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.section1,container,false);

        btnItem1 = (Button) view.findViewById(R.id.btnItem1);
        btnItem1.setOnClickListener(this);
        btnItem2 = (Button) view.findViewById(R.id.btnItem2);
        btnItem2.setOnClickListener(this);
        return view;
    }

    @Override
    public void onClick(View view) {
        if (view == btnItem1) {
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setMessage("button 1")
                    .setNegativeButton("Retry", null)
                    .create()
                    .show();
        }
        else if (view == btnItem2) {
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setMessage("button 2")
                    .setNegativeButton("Retry", null)
                    .create()
                    .show();
        }
    }
}

共有2个答案

华福
2023-03-14

首先,您要正确声明按钮,所以进入xml文件,并确保button有一个ID。您可以通过在按钮中执行以下操作来添加ID:android:ID=“@+ID/button”

然后在Java代码文件中,你要这样声明:

final Button button = (Button) findViewById(R.id.button)
桂和同
2023-03-14

您需要调用view.getText().toString()来获取视图的文本值。下面是示例代码。

 @Override
public void onClick(View view) {
    if (view == btnItem1) {
        Toast.makeText(getActivity(), btnItem1.getText().toString(), Toast.LENGTH_SHORT).show();

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setMessage("button 1")
                .setNegativeButton("Retry", null)
                .create()
                .show();
    }
    else if (view == btnItem2) {
        Toast.makeText(getActivity(), btnItem1.getText().toString(), Toast.LENGTH_SHORT).show();

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setMessage("button 2")
                .setNegativeButton("Retry", null)
                .create()
                .show();
    }
}
 类似资料:
  • 问题内容: 我试图通过单击方法中的按钮来打开新窗口。方法如何工作以及在其中应该如何做才能启动新方法? 问题答案: 可以使用名为Intents的android主要构建模块之一和属于Activity类的方法之一来完成此任务。 目的是要执行的操作的抽象描述。它可以与startActivity一起使用来启动一个Activity,可以将broadcastIntent发送到任何感兴趣的BroadcastRec

  • 本文向大家介绍ionic+AngularJs实现获取验证码倒计时按钮,包括了ionic+AngularJs实现获取验证码倒计时按钮的使用技巧和注意事项,需要的朋友参考一下 按钮功能为:点击“获取验证码”——按钮不可用-设置倒计时-60秒后重新获取。 主要实现原理:点击后,设置一个$interval,每一秒更改一次剩余时间,并依赖Angular数据绑定实时显示在页面中。设置一个$timeout,60

  • 我试图从这个结果页面的“Show Map”按钮中刮出纬度和经度数据:https://www.psychologytoday.com/us/therapists/60148/374863?sid=5d01e84909804&ref=2&tr=resultsName:https://www.psychologytoday.com/us/therapists/60148/374863?sid=5d01e

  • 目前正在学习我自己 JavaFX。 我使用场景生成器创建了一个带有按钮和文本字段的简单场景。 为什么我不能点击按钮,并从文本字段中获取文本? FXML代码是:

  • 表以作为主键,列(CHAR(1))可以是“x”或“y”,以及(INT)。这些列上没有索引。存储引擎是InnoDB。 state_positions必须总是连续的,并且对于某个状态可能永远不会有重复的位置,即如果我有5个状态为“x”的用户,他们的state_positions必须是1、2、3、4、5 这是我正在运行的导致死锁的查询: 为了测试,我同时插入了大量的用户,但每次都出现死锁错误。 我读了这

  • 每次单击我创建的按钮时,我的应用程序都会挂起。我尝试将这两个Java代码分开,它们工作得很好。谁能帮我查一下吗?我只想通过onClickListener调用第二个编码。 编辑:我再次检查,我很确定问题出在OnClickListener中,因为当我删除这些内容时,我可以按下按钮,它不会挂起,尽管它也不会转到其他页面。 对不起,我真的不知道如何张贴日志,这些是我在我的程序的日志中看到的东西。 这是Ma