gestureDetector = new GestureDetector(this);
webview1 = (WebView) findViewById(R.id.webview1);
webview2 = (WebView) findViewById(R.id.webview2); // 按钮
classification = (Button) findViewById(R.id.classification);
news = (Button) findViewById(R.id.news);
physical = (Button) findViewById(R.id.physical);
zoneking = (Button) findViewById(R.id.zoneking);
btn_serch = (Button) findViewById(R.id.btn_serch);
physical_btn = (Button) findViewById(R.id.physical_btn);
medical_btn = (Button) findViewById(R.id.medical_btn);
information_btn = (Button) findViewById(R.id.information_btn);
local_btn = (Button) findViewById(R.id.local_btn);
partTimeJob_btn = (Button) findViewById(R.id.partTimeJob_btn);
car_btn = (Button) findViewById(R.id.car_btn);
phone_btn = (Button) findViewById(R.id.phone_btn);
city_btn = (Button) findViewById(R.id.city_btn);
other_btn = (Button) findViewById(R.id.other_btn); linearLayout = (LinearLayout) findViewById(R.id.linearLayout); // 事件
webview1.loadUrl("http://www.baidu.com");
webview1.setFocusable(true);
webview1.requestFocus();
webview1.getSettings().setJavaScriptEnabled(true);
webview1.setWebViewClient(new WebViewClient() {
@Override
// 在WebView中而不是默认浏览器中显示页面
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webview1.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
}
});
webview2
.loadUrl("http://192.168.1.154:8080/Report/login.do?operate=tologin&tjzxid=00000000000000000000");
webview2.getSettings().setJavaScriptEnabled(true);
webview2.clearCache(true);
webview2.getSettings().setSavePassword(false);
webview2.setFocusable(true);
webview2.requestFocus();
webview2.setWebViewClient(new WebViewClient() {
@Override
// 在WebView中而不是默认浏览器中显示页面
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webview2.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} }); // 单击事件
classification.setOnClickListener(new OnClickListener() { public void onClick(View v) {
classification
.setBackgroundResource(R.drawable.classification_bg);
news.setBackgroundResource(R.drawable.news);
physical.setBackgroundResource(R.drawable.physical);
zoneking.setBackgroundResource(R.drawable.zoneking);
} });
news.setOnClickListener(new OnClickListener() { public void onClick(View v) {
classification.setBackgroundResource(R.drawable.classification);
news.setBackgroundResource(R.drawable.news_bg);
physical.setBackgroundResource(R.drawable.physical);
zoneking.setBackgroundResource(R.drawable.zoneking);
} });
physical.setOnClickListener(new OnClickListener() { public void onClick(View v) {
classification.setBackgroundResource(R.drawable.classification);
news.setBackgroundResource(R.drawable.news);
physical.setBackgroundResource(R.drawable.physical_bg);
zoneking.setBackgroundResource(R.drawable.zoneking);
} });
zoneking.setOnClickListener(new OnClickListener() { public void onClick(View v) {
classification.setBackgroundResource(R.drawable.classification);
news.setBackgroundResource(R.drawable.news);
physical.setBackgroundResource(R.drawable.physical);
zoneking.setBackgroundResource(R.drawable.zoneking_bg);
} }); // 触屏事件
classification.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
news.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
physical.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
zoneking.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
btn_serch.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
physical_btn.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
medical_btn.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
information_btn.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
local_btn.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
partTimeJob_btn.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
car_btn.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
phone_btn.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
city_btn.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
other_btn.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
} });
} public boolean onDown(MotionEvent e) { return false;
} public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
return false;
}
if ((e1.getRawX() - e2.getRawX()) > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                        .............
}
} public void onLongPress(MotionEvent e) {
System.out.println();
} public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
return false;
} public void onShowPress(MotionEvent e) {
webview1.requestFocus();
webview2.requestFocus();
} public boolean onSingleTapUp(MotionEvent e) {
return false;
}
现在在运行程序的时候,第一次单击Button按钮没有效果,第二次才能响应单击事件,为什么?怎么解决??第一次请求的时候触发的是哪个事件??

解决方案 »

  1.   

    // 单击事件
    classification.setOnClickListener(new OnClickListener() {public void onClick(View v) {
    classification
    .setBackgroundResource(R.drawable.classification_bg);
    news.setBackgroundResource(R.drawable.news);
    physical.setBackgroundResource(R.drawable.physical);
    zoneking.setBackgroundResource(R.drawable.zoneking);
    }});
    news.setOnClickListener(new OnClickListener() {public void onClick(View v) {
    classification.setBackgroundResource(R.drawable.classification);
    news.setBackgroundResource(R.drawable.news_bg);
    physical.setBackgroundResource(R.drawable.physical);
    zoneking.setBackgroundResource(R.drawable.zoneking);
    }});
    physical.setOnClickListener(new OnClickListener() {public void onClick(View v) {
    classification.setBackgroundResource(R.drawable.classification);
    news.setBackgroundResource(R.drawable.news);
    physical.setBackgroundResource(R.drawable.physical_bg);
    zoneking.setBackgroundResource(R.drawable.zoneking);
    }});
    zoneking.setOnClickListener(new OnClickListener() {public void onClick(View v) {
    classification.setBackgroundResource(R.drawable.classification);
    news.setBackgroundResource(R.drawable.news);
    physical.setBackgroundResource(R.drawable.physical);
    zoneking.setBackgroundResource(R.drawable.zoneking_bg);
    }});主要地主在这里,单击第一次按钮没响应,第二次才会执行,我做的是滑屏的程序
      

  2.   

                    // 按钮
    classification = (Button) findViewById(R.id.classification);
    news = (Button) findViewById(R.id.news);
    physical = (Button) findViewById(R.id.physical);
    zoneking = (Button) findViewById(R.id.zoneking);
                    // 单击事件
    classification.setOnClickListener(new OnClickListener() { public void onClick(View v) {
    classification
    .setBackgroundResource(R.drawable.classification_bg);
    news.setBackgroundResource(R.drawable.news);
    physical.setBackgroundResource(R.drawable.physical);
    zoneking.setBackgroundResource(R.drawable.zoneking);
    } });
    news.setOnClickListener(new OnClickListener() { public void onClick(View v) {
    classification.setBackgroundResource(R.drawable.classification);
    news.setBackgroundResource(R.drawable.news_bg);
    physical.setBackgroundResource(R.drawable.physical);
    zoneking.setBackgroundResource(R.drawable.zoneking);
    } });
    physical.setOnClickListener(new OnClickListener() { public void onClick(View v) {
    classification.setBackgroundResourc(R.drawable.classification);
    news.setBackgroundResource(R.drawable.news);
    physical.setBackgroundResource(R.drawable.physical_bg);
    zoneking.setBackgroundResource(R.drawable.zoneking);
    } });
    zoneking.setOnClickListener(new OnClickListener() { public void onClick(View v) {
    classification.setBackgroundResource(R.drawable.classification);
    news.setBackgroundResource(R.drawable.news);
    physical.setBackgroundResource(R.drawable.physical);
    zoneking.setBackgroundResource(R.drawable.zoneking_bg);
    } });
                            // 触屏事件
    classification.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
    if (gestureDetector.onTouchEvent(event))
    return true;
    else
    return false;
    } });
    news.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
    if (gestureDetector.onTouchEvent(event))
    return true;
    else
    return false;
    } });
    physical.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
    if (gestureDetector.onTouchEvent(event))
    return true;
    else
    return false;
    } });
    zoneking.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
    if (gestureDetector.onTouchEvent(event))
    return true;
    else
    return false;
    } });
                    //滑屏动画
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
    float velocityY) {
    if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
    return false;
    }
            }
                    public void onLongPress(MotionEvent e) {
    System.out.println();
    } public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
    float distanceY) {
    return false;
    } public void onShowPress(MotionEvent e) {
    webview1.requestFocus();
    webview2.requestFocus();
    } public boolean onSingleTapUp(MotionEvent e) {
    return false;
    }
            简化了的主体程序,帮忙看下。
      

  3.   

    if (gestureDetector.onTouchEvent(event))
    return true;
    else
    return false;
    }
    你这是干嘛
    直接处理返回个true
    打个Log看对不对
      

  4.   

    当第一次按下拾起时,OnTouchEvent返回值为false,这样系统就不会释放触发事件,也就不会执行点击事件;第二次按下拾起时,OnTouchEvent返回值为true,系统释放了触发事件,这样就可以去执行其他触发事件。
      

  5.   

    获取焦点,例如:
    Button.setFocusable(true);(只加这个没有用,同样无法获得焦点)  
    Button.setFocusableInTouchMode(true);(这个必须加,获得焦点和TouchMode有关)http://blog.csdn.net/ch_984326013/article/details/6702958