如何有效地在Android应用中实现短按和长按(或长按)操作?

时间:2019-09-06 15:49:55

标签: android android-intent onclicklistener onlongclicklistener onitemlongclicklistener

我正在创建一个Android应用程序,其中提到的业务电话,电子邮件,网站类似于随附的Google地图的屏幕快照。

就像在g地图中

  
      
  1. 单击一下即可进入相应的应用程序(打开复制了电话号码的拨号程序)等。

  2.   
  3. 长按/按住可将其复制到剪贴板,并显示“将电话号码复制到clicpboard”的消息。

  4.   

现在我已经正确设置了意图,它们可以正常工作->已实现第一步。

当我尝试使用“ OnLongClickListener”方法显示吐司时,显示吐司消息需要花费一些时间。有什么方法可以加快此速度,还是我丢失了某些东西?还是应该使用其他替代方法,例如 onTouch()方法?

(坚持这一点,但仍要学习并尝试将其复制到剪贴板中。也欢迎输入这方面的信息!)

在g maps应用程序中,按下并按住时,吐司消息几乎立即出现。所以要达到同样的效果。

Screenshot of Google Maps

  

从MainActivity.java中提取的代码(网站,电话号码,电子邮件ID是具有drawableLeft的文本视图。我发现我们不能在TextView上使用setOnItemLongClick,因为它仅用于ListView)

// This method is called when the website text view is clicked and opens the  compnay website

public void openWebsite(View v) {
    TextView textView = (TextView) findViewById(R.id.webURL_text_view);

    textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent openWebsiteIntent = new Intent(Intent.ACTION_VIEW);
            openWebsiteIntent.setData(Uri.parse("https://www.company.com"));

            if (openWebsiteIntent.resolveActivity(getPackageManager()) != null) {
                startActivity(openWebsiteIntent);
            }
        }
    });

    textView.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {
            showMessage();
            return true;
        }
    });
}

public void showMessage(){
    Toast.makeText(this,"Information copied to Clipboard", Toast.LENGTH_LONG).show();
}
  

我是android开发的新手,只是尝试了一些东西,所以请尽可能详细。谢谢。

0 个答案:

没有答案