Android OnclickListener在一个按钮中具有多个功能

Android OnclickListener在一个按钮中具有多个功能,android,Android,嘿,伙计们,我正在用按钮+创建一张地图,用于缩放。我想要的是,当我点击按钮时,它会缩放20%,当我再次点击按钮时,它会缩放50%,再次点击时,它会缩放100%。我该怎么做 Button zooomin = (Button) findViewById(R.id.plus); zooomin.init(this); zooomin.setOnClickListener(new View.OnClickListener() { @Override p

嘿,伙计们,我正在用按钮+创建一张地图,用于缩放。我想要的是,当我点击按钮时,它会缩放20%,当我再次点击按钮时,它会缩放50%,再次点击时,它会缩放100%。我该怎么做

  Button zooomin = (Button) findViewById(R.id.plus);
    zooomin.init(this);
    zooomin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MapView.zoomin(20%);
            MapView.zoomin(50%);
            MapView.zoomin(100%);
        }
    });

我希望你能帮我解决我的问题,我是android开发的新手。

这可以用不同的方法来完成; 其中之一可能是:

float zoom = map.getCameraPosition().zoom;

if (zoom<20) {MapView.zoomin(20%);}
else if (zoom>=20 && zoom<50) {MapView.zoomin(50%);}
else if (zoom>=50) {MapView.zoomin(100%);}
float zoom=map.getCameraPosition().zoom;
如果(zoom=20&&zoom=50){MapView.zoomin(100%);}

这可以通过不同的方法实现; 其中之一可能是:

float zoom = map.getCameraPosition().zoom;

if (zoom<20) {MapView.zoomin(20%);}
else if (zoom>=20 && zoom<50) {MapView.zoomin(50%);}
else if (zoom>=50) {MapView.zoomin(100%);}
float zoom=map.getCameraPosition().zoom;
如果(zoom=20&&zoom=50){MapView.zoomin(100%);}

您可以使用MapView.getZoomLevel()方法获取当前缩放级别,然后根据当前缩放级别使用开关或其他方法查找下一个缩放级别,并使用MapView.ZoomLevel()进行放大。

您可以使用MapView.getZoomLevel()进行放大方法获取当前缩放级别,然后使用开关或其他工具根据当前缩放级别查找下一个缩放级别,并使用MapView.zoomIn()放大。

尝试此操作

    int mycount = 0;
    Button zooomin = (Button) findViewById(R.id.plus);
    zooomin.init(this);
    zooomin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        ++mycount
            if(mycount == 1){
            String zoom = "20%"}
            else if(mycount == 2){
            String zoom = "50%"}
            else if(mycount == 3){
            String zoom = "100%"}

            MapView.zoomin(zoom);
        }
    });
试试这个

    int mycount = 0;
    Button zooomin = (Button) findViewById(R.id.plus);
    zooomin.init(this);
    zooomin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        ++mycount
            if(mycount == 1){
            String zoom = "20%"}
            else if(mycount == 2){
            String zoom = "50%"}
            else if(mycount == 3){
            String zoom = "100%"}

            MapView.zoomin(zoom);
        }
    });

创建存储缩放值的整数列表,然后在每次单击时将列表的索引增加1。当缩放级别达到100时,下一次单击会将缩放级别重置为20%

Button zooomin = (Button) findViewById(R.id.plus);
zooomin.init(this);

ArrayList<Integer> zoomlevels = new ArrayList<Integer>();
zoomlevels.add(20);
zoomlevels.add(50);
zoomlevels.add(100);

int counter = 0;

zooomin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        MapView.zoomin(zoomlevels[counter]);
        counter++;
        if(counter == 2) counter = 0;
    }
});
Button zooomin=(Button)findViewById(R.id.plus);
zooomin.init(this);
ArrayList zoomlevels=新的ArrayList();
zoomlevels.add(20);
zoomlevels.add(50);
zoomlevels.add(100);
int计数器=0;
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
zoomlevels[计数器];
计数器++;
如果(计数器==2)计数器=0;
}
});

创建存储缩放值的整数列表,然后在每次单击时将列表的索引增加1。当缩放级别达到100时,下一次单击会将缩放级别重置为20%

Button zooomin = (Button) findViewById(R.id.plus);
zooomin.init(this);

ArrayList<Integer> zoomlevels = new ArrayList<Integer>();
zoomlevels.add(20);
zoomlevels.add(50);
zoomlevels.add(100);

int counter = 0;

zooomin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        MapView.zoomin(zoomlevels[counter]);
        counter++;
        if(counter == 2) counter = 0;
    }
});
Button zooomin=(Button)findViewById(R.id.plus);
zooomin.init(this);
ArrayList zoomlevels=新的ArrayList();
zoomlevels.add(20);
zoomlevels.add(50);
zoomlevels.add(100);
int计数器=0;
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
zoomlevels[计数器];
计数器++;
如果(计数器==2)计数器=0;
}
});

您可以插入此变量:

private static int button_state=0;
private static int[] available_zooms = new int[]{20,50,100}
现在,在方法上单击“插入”:

MapView.zoomin(available_zooms[button_state++]);
if(button_state==available_zooms.length)
  button_state=0;
看起来像这样:

private static int button_state=0;
private static int[] available_zooms = new int[]{20,50,100}
Button zooomin = (Button) findViewById(R.id.plus);

zooomin.init(this);
zooomin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        MapView.zoomin(available_zooms[button_state++]);
        if(button_state==available_zooms.length)
          button_state=0;
    }
});

您可以插入此变量:

private static int button_state=0;
private static int[] available_zooms = new int[]{20,50,100}
现在,在方法上单击“插入”:

MapView.zoomin(available_zooms[button_state++]);
if(button_state==available_zooms.length)
  button_state=0;
看起来像这样:

private static int button_state=0;
private static int[] available_zooms = new int[]{20,50,100}
Button zooomin = (Button) findViewById(R.id.plus);

zooomin.init(this);
zooomin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        MapView.zoomin(available_zooms[button_state++]);
        if(button_state==available_zooms.length)
          button_state=0;
    }
});

你必须这样写

  int count = 0;
  Button zooomin = (Button) findViewById(R.id.plus);
      zooomin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (count == 0) {
                MapView.zoomin(20%);
            } else if (count == 1) {
                MapView.zoomin(50%);
            } else {
                MapView.zoomin(100%);
            }
            count++;
        }
  });

你必须这样写

  int count = 0;
  Button zooomin = (Button) findViewById(R.id.plus);
      zooomin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (count == 0) {
                MapView.zoomin(20%);
            } else if (count == 1) {
                MapView.zoomin(50%);
            } else {
                MapView.zoomin(100%);
            }
            count++;
        }
  });


保留一个整数计数器,当按下按钮时,将缩放设置为20%,然后在计数器中添加1,如果是2 50%,等等,然后当它达到100%时,重置计数器,这样当他们再次按下时,计数器将返回到20%。类似的东西?你可以计算你的点击整数变量,并根据计数应用缩放。也许你可以使用MapView。getZoomLevel()不需要我有另一个按钮缩小。我唯一的问题是缩放按钮我相信我的问题是单击其中的3个按钮保持一个整数计数器,当按下按钮时,将缩放设置为20%,然后在计数器中添加1,如果是2 50%,等等,然后当它达到100%时,重置计数器,这样当他们再次按下时,计数器将返回到20%。类似的东西?你可以计算你的点击整数变量,并根据计数应用缩放。也许你可以使用MapView。getZoomLevel()不需要我有另一个按钮缩小。我唯一的问题是缩放按钮我相信我的问题是单击其中的3个。当我缩小地图并再次单击缩放按钮时,单击3次后,您提供的代码正在工作。缩放按钮不工作。如何解决此问题?在缩小方法中减少此计数当我缩小地图并再次单击“缩放”按钮时,单击3倍后,您提供的代码正在工作。它不工作。如何解决此问题?在缩小方法中减少此计数当我缩小地图并再次单击“缩放”按钮时,单击3倍后,您提供的代码正在工作。它不工作。如何解决此问题?当您单击缩小按钮时,添加
zoomLevel=0当我缩小地图并再次单击“缩放”按钮时,单击3倍后,您提供的代码才起作用。它不起作用。如何解决此问题?当您单击缩小按钮时,添加
zoomLevel=0你像个老板,非常感谢你的帮助。现在可以用了没问题!很高兴我能帮上忙。你像个老板,非常感谢你的帮助。现在可以用了没问题!很高兴我能帮忙。