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

我正在尝试从 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));


}

活动中的代码与不和谐应用程序共享一个字符串。我对片段尝试的每次修改都会使应用程序崩溃。


谢谢你的帮助。


FFIVE
浏览 67回答 1
1回答

慕沐林林

首先,您无法像 Activity 一样处理片段中的 onclick,因此您应该从 xml 中删除这一行:        android:onClick="someMethod"之后,在 Fragment 中初始化按钮对象并调用其 setOnClickListener 方法。看看这个: @Overridepublic 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;}我希望这有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java