2011-06-05 49 views
0

我做了一個textview可點擊,然後觸發一個意圖,它的工作原理,但只有一次。第一次點擊textview後,它不再是可點擊的,我不知道爲什麼。您的幫助將不勝感激。可點擊的TextView只能工作一次

<TextView android:text="Click Me" android:layout_height="wrap_content" 
android:layout_width="match_parent" android:id="@+id/textView1" 
android:textSize="50dp" android:focusable="false" android:longClickable="true"></TextView> 

TextView txt = (TextView) findViewById(R.id.textView1); 

    txt.setOnLongClickListener(new OnLongClickListener() { 

     public boolean onLongClick(View v) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent(Example.this, Alert.class)); 

      return false; 
     } 
    }); 
+1

嘗試更改返回false;返回真實;我不知道這是否有用,但你可以嘗試。 – Austin 2011-06-05 19:29:11

+0

同樣的事情,我也只是注意到意圖被觸發onStart沒有textview被點擊,但我沒有設置它那麼 – Amanni 2011-06-05 19:45:40

回答

0

alert類是做什麼的?如果它是一個活動,它可能會被放置在當前活動的頂部,因此儘管您可以看到您的活動,但它不在堆棧的頂部/前臺,因此您實際上並未按下TextView,你正在按一個超過它的透明活動。

檢查最簡單的方法是按下TextView,然後按下設備的後退鍵並查看TextView是否響應點擊。

或者你確定你沒有在Alert.class中設置相同的佈局?這將使它看起來像是一樣的活動,但如果Alert類未設置點擊監聽器,則不會發生任何事情。

事實上,你開始一個有目的的活動,並且讓另一個類的實例(我認爲它也是一個活動)阻止點擊工作對我來說是嚴重暗示Alert以某種方式獲得點擊的例子。當你說事情工作正常,如果你刪除的意圖支持。也許你可以發佈兩個類的完整源代碼?

0

您是否有禁用textview的onClickListener? 通過從onLongClick返回false,還會調用onClick偵聽器(如果有)。

你也可以嘗試刪除android:focusable =「false」

+0

所以你在說什麼是我需要另一個偵聽器告訴第一個偵聽器從onClick返回? – Amanni 2011-06-05 20:00:07

+0

沒有我在說的是,通過從onLongClick返回false,您告訴Android您沒有處理按鈕按下,所以它會嘗試找到其他東西來處理它,例如,一個onClick方法 – Damian 2011-06-05 20:03:22

+0

,但它做同樣的事情爲真 – Amanni 2011-06-05 20:06:24