簡體   English   中英

如何在子級的可擴展列表中獲取textview的clicklistener?

[英]How to get the clicklistener for textview in child for expandable list?

我目前在Expandablelist中為孩子使用自定義布局,其中包括2個不同的文本視圖和一個imageview。 而且每次都會有一個孩子。 我能夠在適配器中獲得clicklistener,但在活動中卻無法獲得。

我也嘗試過在onChildClick()方法中獲取點擊偵聽器事件,但它無法正常工作。

我在不同的活動中使用此適配器,因此我希望活動本身中的文本視圖之一具有單擊偵聽器。

有任何建議請。

我能夠做到這一點,我在布局文件中添加了android:onClick="textClickHandler"> ,並在我的活動中添加了以下監聽器:

public void textClickHandler(View view){

        if(view.getId() == R.id.textMore){
            Toast.makeText(mContext, "More Text Clicked.", Toast.LENGTH_LONG).show();
        }
    }

您不能在ActivityView上設置偵聽器(如果我了解您要執行的操作)。 一種方法是:

  • 使您的適配器具有在實例化適配器時設置的boolean值(這將告訴您適配器是否屬於Activity ,而TextView應該具有偵聽器(例如,為true )。如果該值為false則您請確保不要在TextView上設置偵聽器。
  • 在自定義適配器的getChildView方法中,在所需的TextView上設置偵聽器(僅當先前值為true ,對於其他活動,您將簡單地忽略此部分)。
  • 在該視圖的OnCLickListeneronClick方法中,使用在自定義適配器的構造函數中傳遞的Context 將其投射到所需的活動並根據需要使用。 一種更優雅的方法是讓所需的Activity實現一個自定義界面(在單擊TextView時通知您)。 然后在適配器中創建一個字段,其類型為該接口的類型,您將在實例化偵聽器時將其指向Activity 單擊TextView ,調用上方該字段的方法,並通知Activity發生了某些事情,它應該做一些事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM