2014-03-04 3 views
1

세 개의 아이콘이 있습니다. 나는 정수 배열에 아이콘을 넣는다. 그들에게 클릭 리스너 이벤트를 어떻게 제공 할 수 있습니까? icon0, icon1, icon2 이벤트는과 다릅니다. 나는 그들에게 클릭 이벤트를주고 싶다. 그러나 나는 그것을 할 수 없다. 클릭 이벤트를 아이콘에 별도로 표시하려면 어떻게해야합니까?int 배열에 clickEvent 추가

저는 wheel.gama jar를 사용하며이 아이콘은 xml에 없습니다. 그들은 드로어 블 폴더에 있습니다

package com.myproject.gama; 

import java.util.Arrays; 

import com.digitalaria.gama.wheel.Wheel; 
import com.digitalaria.gama.wheel.WheelAdapter; 
import android.app.Activity; 
import android.content.res.Resources; 
import android.graphics.drawable.Drawable; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.*; 
import android.view.View.*; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.ImageView; 

import android.util.Log; 

public class SampleWheelActivity extends Activity { 

    private static final String TAG = SampleWheelActivity.class.getSimpleName(); 

    private Wheel wheel; 
    public WheelAdapter<Adapter> adapter; 
    private Resources res; 
    public int[] icons = { 
     R.drawable.icon1, R.drawable.icon0 , R.drawable.icon2}; 
    ImageView t; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     init(); 
    } 

    private void init() { 
     res = getApplicationContext().getResources(); 
     wheel = (Wheel) findViewById(R.id.wheel);  
     wheel.setItems(getDrawableFromData(icons)); 
     wheel.setWheelDiameter(400); 
    } 

    @Override 
    public void onResume(){ 

     for (int i = 0; i < icons.length; i++) { 
      t= new ImageView(SampleWheelActivity.this); 
       t.setId(i); 
       t.setOnClickListener((OnClickListener) this); 
        super.onResume(); 
    } 



} 

답변

1

드로어 블에는 onClick 이벤트가 없습니다. 이벤트 리스너를 휠 (예 : OnWheelChangedListener)로 설정 한 다음 이벤트를 처리해야합니다. 여기에서 휠의 선택된 ID를 켤 수 있습니다.

편집 :

코드 :

wheel.addChangingListener(new OnWheelChangedListener() { 
    public void onChanged(WheelView wheel, int oldValue, int newValue) { 
     switch(newValue) { 
      case 0: 
       // icon1 is selected as it has index 0 
       // do something 
       break; 
      case 1: 
       // icon0 is selected as it has index 1 
       // do something else 
       break; 
      case 2: 
       // icon2 is selected as it has index 2 
       // and again something else 
       break; 
     } 
    } 
} 
+0

가 나는 그것이 – 19052013

+0

을 이미지 뷰와 어떻게 내가 바퀴에 이벤트 리스너를 설정 변경할 수 .. :( – 19052013

+0

당신에 대한 예를 추가 초기화-방법 – Christian