为了账号安全,请及时绑定邮箱和手机立即绑定

如何在片段中单击按钮时检索 EditTexts 和 Spinners?

如何在片段中单击按钮时检索 EditTexts 和 Spinners?

FFIVE 2023-09-27 16:17:44
我正在尝试从 EditTexts 获取字符串,并在片段中单击按钮时使用 Spinner 获取字符串。我在一个活动中编写了一些代码并且可以工作,但我不知道如何更改它以便它在片段中工作。public void buttonClick (View view) {    Spinner stars = findViewById(R.id.starsSpinner);    String starsText = stars.getSelectedItem().toString();    EditText time = findViewById(R.id.editTime);    String timeText = time.getText().toString();    EditText location = findViewById(R.id.editLocation);    String locationText = location.getText().toString();    String space = " ";    String shareBody ="!r " + starsText + space + locationText + space + timeText;    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);    sharingIntent.setClassName("com.discord", "com.discord.app.AppActivity$AppAction");    sharingIntent.setType("text/plain");    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);    startActivity(Intent.createChooser(sharingIntent, shareBody));}活动中的代码与不和谐应用程序共享一个字符串。我对片段尝试的每次修改都会使应用程序崩溃。谢谢你的帮助。
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

首先,您无法像 Activity 一样处理片段中的 onclick,因此您应该从 xml 中删除这一行:


        android:onClick="someMethod"

之后,在 Fragment 中初始化按钮对象并调用其 setOnClickListener 方法。


看看这个:


 @Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

                         Bundle savedInstanceState) {


    final View rootView=inflater.inflate(R.layout.fragment_blank, container, false);


    //using findViewById() in a Fragment

    Button button=rootView.findViewById(R.id.button_id);

    

    //handle onclick events for the button

    button.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {


            EditText time = rootView.findViewById(R.id.editTime);


        }

    });


    return rootView;

}

我希望这有帮助。


查看完整回答
反对 回复 2023-09-27
  • 1 回答
  • 0 关注
  • 47 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信