微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-具有两个功能的Android按钮

我需要一个假定具有两个功能的按钮.

如果我点击一次,它将转到下一页.
如果我按住按钮,它将允许我编辑按钮上的文本.

单击该按钮可以转到下一页,但是如果按下按钮,我如何实现允许我更改文本的第二个功能

有人知道吗

Java代码

public class MainActivity extends Activity {
    Button button1;
    Button button2;
    Button button3;
    Handler h;
    private Socket socket;
    private boolean mInSettingsMode;
    private static final int SERVERPORT = 5000;
    private static final String SERVER_IP = "192.168.43.83";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new Thread(new ClientThread()).start();
        // living button click start
        button1 = (Button) findViewById(R.id.btnliving);
        button1.setonClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // Todo Auto-generated method stub
                h = new Handler();
                h.postDelayed(irun, 0);
            }
        });

        button2 = (Button) findViewById(R.id.btnbed);
        button2.setonClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // Todo Auto-generated method stub
                h = new Handler();
                h.postDelayed(irun2, 0);
            }
        });

        button3 = (Button) findViewById(R.id.btndin);
        button3.setonClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // Todo Auto-generated method stub
                h = new Handler();
                h.postDelayed(irun3, 0);
            }
        });
    }

    Runnable irun = new Runnable() {
        @Override
        public void run() {
            // Todo Auto-generated method stub
            Intent i = new Intent(MainActivity.this, living.class);
            startActivity(i);
            finish();
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
        }
    };

    Runnable irun2 = new Runnable() {
        @Override
        public void run() {
            // Todo Auto-generated method stub
            Intent i = new Intent(MainActivity.this, bed.class);
            startActivity(i);
            finish();
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
        }
    };

    Runnable irun3 = new Runnable() {
        @Override
        public void run() {
            // Todo Auto-generated method stub
            Intent i = new Intent(MainActivity.this, din.class);
            startActivity(i);
            finish();
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
        }
    };

    /*
     * @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the
     * menu; this adds items to the action bar if it is present.
     * getMenuInflater().inflate(R.menu.main, menu); return true; }
     */
    class ClientThread implements Runnable {
        @Override
        public void run() {
            try {
                InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
                // new Thread(new ClientThread()).start();
                socket = new Socket(serverAddr, SERVERPORT);
            } catch (UnkNownHostException e1) {
                e1.printstacktrace();
            } catch (IOException e1) {
                e1.printstacktrace();
            }
        }
    }
}

xml代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:layout_gravity="center"
 android:gravity="center"
 android:orientation="vertical"
 android:background="@drawable/back1"
 tools:context=".MainActivity" >
 <Button 
 android:id="@+id/btnliving"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Light Control"
 />
 <Button 
 android:id="@+id/btnbed"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Fan Control"
 />
 <Button 
 android:id="@+id/btndin"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Thermostat Control"
 />

 </LinearLayout>

解决方法:

您可以将第二个函数设置为setonLongClickListener:

button.setonLongClickListener(new OnLongClickListener() { 
        @Override
        public boolean onLongClick(View v) {
            // Todo Auto-generated method stub
            //change text here
            return true;
        }
    });

一个函数是与setonclickListener相同的:

button.setonClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Perform action on click
             }
         });

检查这个Documentation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐