无法在TileView上使用OnClickListener

时间:2014-07-31 20:40:17

标签: android onclicklistener

我使用项目TileView来显示大图像并在其上添加标记,在android中,它运行良好除了当我在View上放置OnClickListener不起作用时,我使用代码波纹管:

public class MainActivity extends ActionBarActivity implements OnClickListener  {

TileView tileView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tileView = new TileView(this);
    tileView.setSize( 1066, 678 );

    tileView.addDetailLevel( 1.000f, "arc/tiles/arc-%col%_%row%.png", "arc/arc.png");

    tileView.setClickable(true);
    setContentView( tileView );
    tileView.setOnClickListener(this);    
}


@Override
public void onClick(View view) {

// thing to do  

}

我应该怎么做才能使OnClickListener工作

3 个答案:

答案 0 :(得分:1)

TileView显然定义了TileViewEventListener接口和addTileViewEventListener()方法。我建议使用界面的onFingerDown()和/或onFingerUp()方法。

答案 1 :(得分:0)

您需要获取用于访问onclick的视图的ID

@Override
public void onClick(View view) {


    int viewId = view.getId();

    switch (viewId) {
        case R.id.button_id:
            //do smthing
            break;

        default:
            break;
    }
}

答案 2 :(得分:0)

我向图书馆的所有者发送了question,他帮我解决了问题, 像oguzhand建议的那样,我必须使用TileViewEventListener,

下面的代码效果很好(由图书馆TileView的所有者提出)

tileView.addTileViewEventListener( listener );
...
private TileViewEventListenerImplementation listener = new TileViewEventListenerImplementation(){
public void onTap( int x, int y ) {
    Log.d( "DEBUG", "tapped" );
}

}