我正在测试一个简单的独立项目的longclick和短击功能。我打算做的是,当我点击一个按钮/标题时,它会调用一个片段,但是当我长时间点击即使没有释放我的手指时,我想要弹出窗口显示。无论我做长按还是短按,我当前的实现都会显示弹出窗口。我想只在长按一下弹出即可,而不是短暂的点击。此外,通过弹出选择菜单,我想触发相关选项的相关片段。有没有办法做到这一点?你能修改我现有的代码来反映吗? 谢谢! 这是我的代码: Mainactivity.java:
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>
答案 0 :(得分:2)
那么你应该实现自己的代码,但这是基础
btnList.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View vi) {
}
});
btnList.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false;
}
});
答案 1 :(得分:1)
尝试将文本视图或其他内容更改为按钮。然后为该对象添加两个侦听器:
和
您可以尝试将onLongClickListener添加到按钮对象,但我不确定这是否可行。
答案 2 :(得分:1)
您应该将OnLongClickListener添加到按钮:
btnList.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public void onLongClick(View v) {
//what you want to do
}
});
您可以从对话框中调用启动活动,也可以进行片段交易,但我不明白您想要做什么。