Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 切换按钮没有';I don’我第一次在安卓上工作_Javascript_Android_Toggle - Fatal编程技术网

Javascript 切换按钮没有';I don’我第一次在安卓上工作

Javascript 切换按钮没有';I don’我第一次在安卓上工作,javascript,android,toggle,Javascript,Android,Toggle,我写了一个带有切换按钮的Android应用程序,但是切换按钮在第一次运行时并不好。但是在取消选中之后,如果您再次尝试,它将在之后正常工作 我在下面列出了我的代码 我必须添加哪些代码才能第一次激活它 public class MainActivity extends Activity{ private ToggleButton togg; @Override protected void onCreate(Bundle savedInstanceState) { super.onCre

我写了一个带有切换按钮的Android应用程序,但是切换按钮在第一次运行时并不好。但是在取消选中之后,如果您再次尝试,它将在之后正常工作

我在下面列出了我的代码

我必须添加哪些代码才能第一次激活它

public class MainActivity extends Activity{

private ToggleButton togg;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    togg = (ToggleButton) findViewById(R.id.toggleButton1);
    }
public void nameOfMethod(View v){

    togg.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (togg.isChecked()) {
                //Toast.makeText(MainActivity.this, "Servise bağlanılıyor...", Toast.LENGTH_SHORT).show();
                new Thread(new ClientThread()).start();
            } else {
                Toast.makeText(MainActivity.this, "Bağlantı sonlandırılıyor...", Toast.LENGTH_SHORT).show();
            }
        }
    });
}
在.xml文件中:

<ToggleButton
    android:id="@+id/toggleButton1"
    android:layout_width="120dp"
    android:layout_height="60dp"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp"
    android:onClick="nameOfMethod"
    android:textOn="Bağlantıyı bitir"
    android:textOff="Bağlantıyı başlat" />

将setOnClickListener方法移动到onCreate(Bundle savedInstanceState)并删除.xml文件中的android:OnClick方法…

您应该在xml或代码中为切换按钮设置选中状态

Xml

或代码:

togg = (ToggleButton) findViewById(R.id.toggleButton1);
togg.setChecked(true);
否则,您可以使用

togg.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        // TODO
    }
});
而不是OnClickListener()

若您仍然想使用OnClickListener,那个么它是可以的,但请记住将它放在onCreate中,而不是放在Method的名称中。(或者记住onCreate中方法的调用名称)

要将其重新创建,请执行以下操作:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    togg = (ToggleButton) findViewById(R.id.toggleButton1);
    togg.setChecked(false);
    togg.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
        ...
        }
    });
}

在第一次选择切换按钮之后,您似乎正在设置单击侦听器,这解释了您得到的行为

移动代码以将侦听器设置在nameOfMethod()之外,它应该可以工作

编辑:如果我不清楚,很抱歉,请从nameOfMethod()中删除setOnClickListener方法。nameOfMethod()是每次选择切换按钮时都会调用的,因此每次触摸它时设置侦听器是毫无意义的。这就是为什么会出现这种不寻常的行为

相反,在nameOfMethod()中,只需直接根据toggleButton的状态设置条件

if(toggleButton.isSelected()){

  ..........

{

else

.......

你说的“移动”到底是什么意思?您可以显示右有序的Exapple吗?切换按钮是一个可以在选中/未选中状态之间切换其状态的按钮,对吗?你的意思是你想先检查一下吗?那么刚刚设置为选中(假)?
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    togg = (ToggleButton) findViewById(R.id.toggleButton1);
    togg.setChecked(false);
    togg.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
        ...
        }
    });
}
if(toggleButton.isSelected()){

  ..........

{

else

.......