在android视图中的任何地方长按时如何创建吐司?

Posted

技术标签:

【中文标题】在android视图中的任何地方长按时如何创建吐司?【英文标题】:How can i create a toast when longpress anywhere in the view in android? 【发布时间】:2014-07-01 07:02:01 【问题描述】:

您好,当我们长按应用程序视图中的任意位置时,我需要创建一个 toast。

我的祝酒词是:

Toast.makeText(getApplicationContext(), "Long Pressed", Toast.LENGTH_SHORT).show();

任何人都可以帮助我吗?提前致谢。

【问题讨论】:

点击你的根布局你需要显示吐司。 【参考方案1】:
  myView = findViewById(r.id.my_view);
  myView.setOnLongClickListener(new OnLongClickListener() 
    public boolean onLongClick(View arg0) 
  Toast.makeText(getApplicationContext(), "Long Clicked " ,Toast.LENGTH_SHORT).show();

        return true;    // set to true
    
);

【讨论】:

这对我的申请不公平。我需要长按当前活动本身。我需要在视图中长按。如果还有其他方法吗??? 只需通过 yourViewOrLayout 简单地更改按钮。【参考方案2】:

你的类可以使用 onLongClickListener 接口。

您的类扩展了 Activity 实现 View.OnLongClickListener 具有在长按时获得通知的方法。

别忘了设置 yourView.setOnLongClickListener(this);获取您需要的所有视图。

【讨论】:

【参考方案3】:

例如,如果您有像 LinearLayout 这样的顶部布局,请在 LongClick 上设置:

你的 layout.xml

  <LinearLayout
android:id="@+id/your_layout"
android:orientation="vertical"
android:layout_
android:layout_
>

你的 Activity.java

 LinearLayout yourLayout = (LinearLayout) findViewById(R.id.your_layout);

 yourLayout.setOnLongClickListener(new OnLongClickListener() 

    @Override
       public boolean onLongClick(View v) 
         Toast.makeText(yourMainActivity.this, "Your Text", Toast.LENGTH_SHORT).show();
         return true;
     

     );

【讨论】:

【参考方案4】:

在 android 视图中的任意位置长按时创建 toast -

长按视图 ===>


LongPress.java 类 -

public class LongPress extends Activity 

 @Override
 protected void onCreate(Bundle savedInstanceState) 
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_long_press);
  TextView txtView = (TextView) findViewById(R.id.txtView);
  txtView.setOnLongClickListener(new OnLongClickListener() 
   @Override
   public boolean onLongClick(View v) 
    // TODO Auto-generated method stub
    Toast.makeText(getApplicationContext(),
      "You have pressed it long :)", 2000).show();
    return true;
   
  );
  txtView.setOnClickListener(new OnClickListener() 
   @Override
   public void onClick(View v) 
    // TODO Auto-generated method stub
    Toast.makeText(getApplicationContext(), "Not Long Enough :(",
      1000).show();
   
  );
 


相关布局文件-

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:gravity="center"
tools:context=".LongPress" >

<TextView
android:id="@+id/txtView"
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:gravity="center"
android:text="Long Press Me!!!!" />

</RelativeLayout>

来源:android-long-press-event-handle-example。

【讨论】:

以上是关于在android视图中的任何地方长按时如何创建吐司?的主要内容,如果未能解决你的问题,请参考以下文章

小吃店与吐司

xml Android自定义吐司xml视图。

按下大视图通知按钮后如何敬酒

Android - 从自定义列表视图中删除一个项目并在长按时更新它

如何有效地将属性更改为 Android Studio 中的多个视图/按钮?

如何使用 AsyncTask 的 onPostExecute 方法更新 Android 中的变量