0

我正在测试一个简单的独立项目的longclick和短点击功能。我打算做的是,当我点击一个按钮/标题时,它会调用一个片段,但是当我长时间点击即使不释放我的手指,我也希望弹出窗口显示。无论我长时间点击还是短时间点击,我当前的实现都会显示弹出窗口。我只想在长时间点击而不是短暂点击时弹出窗口。另外,通过弹出式选择菜单,我想触发一个相关的片段选择选项。是否有办法做到这一点?你可以修改我现有的代码来反映吗? 谢谢! 这里是我的代码: Mainactivity.java:如何在我的按钮上同时添加适当的longclick和正常点击?

package com.example.longclick; 

import android.os.Bundle; 

import android.app.Activity; 

import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 
import android.view.View.OnClickListener; 
public class MainActivity extends Activity { 

Button btnList; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main);   
     btnList = (Button)this.findViewById(R.id.btnListSample); 
     btnList.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    final CharSequence[] items = {"Personal Lists", "Shared Lists"}; 
    AlertDialog.Builder listBuilder = new AlertDialog.Builder(MainActivity.this); 

    listBuilder.setTitle("Manage Categories"); 
    listBuilder.setItems(items, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int item) { 
      Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    AlertDialog alertList = listBuilder.create(); 
    alertList.show();  
    } 
    }); 


    } 
} 

和相关的XML: activity_main.xml中:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 


    <Button 
    android:text="Lists Header" 
    android:id="@+id/btnListSample" 

    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 
    </Button> 


</LinearLayout> 

回答

2

那么你应该实现自己的代码,但这里有基本

btnList.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View vi) { 

     } 
}); 

btnList.setOnLongClickListener(new OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View v) { 

      return false; 
     } 

}); 
+0

得到它的工作,谢谢!只需要知道,是否有办法通过触摸弹出窗口外的方式来解除电话? –

+1

popup.setCanceledOnTouchOutside(true); – BigT

1

试着改变你的按钮,文本视图或别的东西。然后该对象,添加了两个监听器:

onLongClickListener

onClickListner

,你可以尝试添加onLongClickListener到按钮对象,但我不知道这是可能的,或者不。

1

你应该OnLongClickListener添加到按钮:

btnList.setOnLongClickListener(new View.OnLongClickListener() { 
    @Override 
    public void onLongClick(View v) { 
    //what you want to do 
     } 
    }); 

你可以调用开始从对话的活动,使片段事务太多,但我不明白你想要做什么。

相关问题