点按文本并在android studio中显示弹出消息

时间:2018-07-17 05:00:01

标签: android android-layout android-studio android-recyclerview kotlin

我的应用程序中有一些文字,这些文字是我在Android Studio中使用kotlin创建的。对于此应用程序,我想保留一条弹出消息,以便点击文本,一个小的弹出窗口会向我显示该弹出窗口中的相同文本。我正在使用recyclerview。 UI的快照如下所示。

UI

因此,我应该能够点击文本并获得包含相同文本的弹出消息。由于我是android studio的业余爱好者,因此我需要一些帮助。我一直在搜索并找到诸如DialogAlertDialog之类的解决方案,但我不知道在这种情况下应如何使用它们。顺便说一下,这里没有按钮,它是一个简单的textView。

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

我找到了一种使用AlertDialog的方法。下面提供了对我有用的代码段。

val mAlertDialogTextView = holder?.view?.textView_subtopic_title //textView_subtopic_title is the view of my choice which needs to popup a message.
            mAlertDialogTextView?.setOnClickListener {
                val mAlertDialog = AlertDialog.Builder(context)
                mAlertDialog.setMessage(key.toString())
                mAlertDialog.setNegativeButton("cancel",{ dialogInterface: DialogInterface, i: Int -> dialogInterface.dismiss()})
                mAlertDialog.show()
            }

谢谢大家的支持。

答案 1 :(得分:0)

首先在xml中设置textView属性:

android:onClick="onClick"
android:clickable="true"

在其中添加Toast的活动中添加点击功能:

public class MyActivity extends Activity {

      public void onClick(View v) {
        Toast.makeText(getActivity(), textView.getString(),
   Toast.LENGTH_LONG).show();
      }  
   }    

答案 2 :(得分:0)

在您的活动中找到您的TextView,然后添加onClickListener 并显示一个包含textviews内容的对话框

TextView myTextView = (TextView)addView.findViewById(R.id.my_textview_id);

myTextView.setOnClickListener(new OnClickListener() {
@Override
 public void onClick(View v) {
    String stringFromTextView = ((TextView)v).getText().toString();
   showAlertDialog(stringFromTextView);
 }
});

private void showAlertDialog(String stringToShow){
   AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
   builder1.setMessage(stringToShow);
   builder1.setCancelable(true);

   AlertDialog alert11 = builder1.create();
   alert11.show();

}

答案 3 :(得分:0)

您可以使用没有按钮的简单对话框。用户可以点击外部的任意位置以将其关闭:

        val ad = AlertDialog.Builder(context).create()
        ad.setMessage("Text")
        ad.setCancelable(true)
        ad.show()

您需要通过context