gpt4 book ai didi

java - ANDROID 两指滑动即可启动应用程序

转载 作者:行者123 更新时间:2023-12-01 11:50:13 25 4
gpt4 key购买 nike

我有这个代码,它不会返回任何错误。然而它并没有像预期的那样工作。当我用两根手指向上滑动时,我尝试启动应用程序,但没有任何反应。谁能看到我的代码有什么问题吗?

public class HomeActivity extends Activity {

ImageButton phoneButton;
ImageButton contactsButton;
ImageButton messagesButton;
ImageButton cameraButton;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_home);

setTitle("Apps");


loadApps();
loadListView();
addClickListener();
addphoneButtonListener();
addmessagesButtonListener();
addcontactsButtonListener();
addcameraButtonListener();


//Two-Finger Drag Gesture detection
RelativeLayout TextLoggerLayout = (RelativeLayout)findViewById(R.id.mainLayout);
TextLoggerLayout.setOnTouchListener(
new RelativeLayout.OnTouchListener(){

@Override
public boolean onTouch(View v, MotionEvent m) {
handleTouch(m);

return true;
}

});



}
void handleTouch(MotionEvent m){
//Number of touches
int pointerCount = m.getPointerCount();
if(pointerCount == 2){
int action = m.getActionMasked();

switch (action)
{
case MotionEvent.ACTION_DOWN:
Intent i;
PackageManager manager = getPackageManager();
try {
i = manager.getLaunchIntentForPackage("com.google.android.googlequicksearchbox");
if (i == null)
throw new PackageManager.NameNotFoundException();
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
} catch (PackageManager.NameNotFoundException e) {

}
break;
case MotionEvent.ACTION_UP:

break;
case MotionEvent.ACTION_MOVE:

break;
case MotionEvent.ACTION_POINTER_DOWN:

break;


}


}
else {
//do something
}
}

最佳答案

尝试调试handleTouch()以查看其不触发的确切原因。我的猜测是因为您对 MotionEvent.ACTION_DOWN 进行了检查,这在现实世界中对于两个手指来说很难同时发生。

将检查移至 MotionEvent.ACTION_MOVE(这正是您想要的,因为您想要滑动,而不是点击),然后重试。

关于java - ANDROID 两指滑动即可启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28855575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com