Android - 警报会停止onClickListeners的监听

时间:2015-12-17 22:40:10

标签: android alert onclicklistener ontouchlistener

在这一个上摸不着头脑。我有以下代码,它只是查看一个像素并标识其颜色。如果它是某种颜色,它会调出警报弹出。

public void setClick(final View view)
{
    view.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (count == 0) {
                view.setDrawingCacheEnabled(true);
                view.buildDrawingCache();
                Bitmap bitmap = view.getDrawingCache();
                if (Color.red(bitmap.getPixel((int) event.getX(), (int) event.getY())) == 232) {
                    alert();
                    count++;
                } 

onTouchListener的XML如下所示。

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

<Button
    android:id="@+id/cust_scroll"
    android:layout_width="237dp"
    android:layout_height="558dp"
    android:background="@drawable/silhoutte_front_ii"
    android:duplicateParentState="true"
    android:clickable="true"
    android:onClick="setClick"
    android:layout_gravity="center"/>

<Button
    android:id="@+id/toCustomize"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:text="Next >>"
    android:onClick="toCustomize"/>

</LinearLayout>

警报的构造如下。

public void alert(){
    LayoutInflater inflater= LayoutInflater.from(this);
    View view=inflater.inflate(R.layout.alert_scroll, null);

    TextView textview=(TextView)view.findViewById(R.id.textmsg);
    textview.setText("Your really long message.");
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
    alertDialog.setTitle("Title");
    //alertDialog.setMessage("Here is a really long message.");
    alertDialog.setView(view);
    alertDialog.setPositiveButton("OK", null);
    alertDialog.setNegativeButton("cancel", null);
    AlertDialog alert = alertDialog.create();
    alert.show();
}

警报的XML如下所示。

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/textmsg"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="hello" />

</LinearLayout>
</ScrollView>

现在,当识别出正确的颜色时,警报弹出没问题。然而,之后,onTouchListener停止响应并且将不再调用警报。我理解在标题中我说onClickListerns是破坏的,这是一个onTouchListener,但我在其他地方有一个onClickListener这个问题。我找不到关于这个主题的任何信息,但我知道有一个简单的解决方案。提前谢谢。

0 个答案:

没有答案