2012-09-13 70 views
1

我做了一個listview。 使用this教程鏈接 它工作正常。 但問題是,當我嘗試將其活性類中添加onitemclick監聽點擊動作不幹活只是想在這裏它的代碼顯示舉杯message.And爲onItemClickListenerListView的OnItemClick不起作用

listViewCity.setOnItemClickListener(new OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> a, View v, int position, long id) { 

        String item = ((TextView)v).getText().toString(); 

        Toast.makeText(getApplicationContext(), item, Toast.LENGTH_LONG).show(); 

      } 
     }); 

爲什麼它不」任何人都可以告訴我嗎?

+0

您的'物品'內是否有任何按鈕或其他可點擊的視圖? –

+0

雅,鏈接那裏..檢查我提到的鏈接 – MBMJ

+1

嘗試TextView.setFocusable(false);在獲取查看方法 – Nitin

回答

0

使用此

由於您使用的是customadapter你將不得不這樣做在你的customadapter類來處理的ListView onclicks ...

convertView.setClickable(true); 
    convertView.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View paramView) 
        { 
         //if you want you can use the "position" value to get the desired row items. 
        } 
        }); 
+0

但我的代碼的問題是什麼?爲什麼它不起作用 – MBMJ

+0

看到您正在使用擴展數組適配器的自定義適配器類,在這種情況下,你不能處理你寫的方式的列表視圖的onClicks ..我發佈的代碼將幫助你。由於你正在加載自定義的列表視圖行,處理適配器類中的onClicks做的工作... –

0

嘗試......

listViewCity.setOnItemClickListener(new OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
        String item = listViewCity.getItemAtPosition(position).toString(); 

        Toast.makeText(getApplicationContext(), item, Toast.LENGTH_LONG).show(); 

      } 
     }); 
+0

它不work.just已經嘗試過 – MBMJ

+0

很多時候我用這個,但我工作很好。 –

1

如果你正在得到一個例外或強制關閉,你笑老提到它。

首先,您的OnItemClickListener錯誤,因爲傳遞給您的OnClickListener的視圖不是TextView,因此您不能將其轉換爲TextView。

您可以通過以下修正:

listViewCity.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
     String item = ((TextView)v.findViewById(R.id.cityName)).getText().toString(); 
      Toast.makeText(getApplicationContext(), item, Toast.LENGTH_LONG).show(); 

    } 
}); 

嘗試什麼,我只是做了它應該工作。如果它不起作用,您可能需要從xml文件中刪除行android:autoLink="web"


屬性android:autoLink="web"正在使您的View的TextView可點擊。正如我在我的評論中提到的,如果您的任何子視圖都是可點擊的,則您的OnItemClickListener將不會收到事件,因爲這些事件將由子級消耗。

+0

它不工作,當我使用你的code.but刪除後'android:autoLink =「網絡」'它工作.thanks.But網址不起作用:) – MBMJ

+0

再次檢查答案 –

0

我有同樣的問題,並通過設置我需要點擊可點擊,然後添加偵聽器來解決它。我將下面的方法放在自定義的適配器中(在getView方法中)。類似這樣的:

public void setViewsClickable(int position) { 
     myView.button.setClickable(true); 
     myView.radioButton.setClickable(true); 
     myView.button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // what this button should do 
      } 
     }); 

     myView.radioButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // what clicking this radio button should do 
      } 
     }); 

    }