切换按钮不'我第一次在安卓系统上工作
Toggle button doesn't work at the first time on Android
我写了一个带有切换按钮的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" />
编辑:它就像那样工作:
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);
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();
}
}
});
}
将setOnClickListener方法移动到onCreate(Bundle savedInstanceState)并删除.xml文件中的android:OnClick方法。。。
您应该在xml或代码中设置切换按钮的检查状态。
Xml
android:checked="true"
或代码:
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,这是可以的,但记住把它放在Create上,而不是放在nameOfMethod中。(或者记住onCreate中的调用名称OfMethod)
把它放在创建:
@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()是每次选择切换按钮时都会调用的名称,因此每次触摸监听器时都设置它是没有意义的。。这就是为什么你会有如此不同寻常的行为。
相反,在你的名字OfMethod()中,直接前进,根据toggleButton 的状态设置你的条件
if(toggleButton.isSelected()){
..........
{
else
.......
相关文章:
- 是否有任何设置阻止JavaScript在系统上工作
- 难以置信的简单密码系统不工作
- z索引堆栈系统未按预期工作
- ajax/php注释系统不工作
- 为什么 Math.log10 在某些系统上工作,但在其他系统上返回未定义
- 在 JQuery 无法正常工作的情况下注册系统
- 切换按钮不'我第一次在安卓系统上工作
- Facebook登录在浏览器中运行良好,但没有;我不能用phonegap在安卓系统上工作
- Marquee没有'在所有计算机系统上,设置超时不能正常工作
- JQuery请求在一个系统上工作,但在其他系统上不工作
- 如何解决window.scroll在安卓系统iFrame中不工作的问题
- Cordova 3.5-移动系统浏览器中的Android开放链接根本无法工作
- 投票系统在部署到heroku时不工作
- 当用户更改其系统日期时,由于SSL证书无效,JS无法工作
- 正在尝试使登录系统正常工作
- Javascript/HTML5-简单的文件系统不工作
- 当一个实时网站在文件系统中工作时,是什么导致它无法工作
- 文件系统API不工作在Chrome v27 &v29
- Django, Jquery Ajax;投票系统不工作,正在刷新分区
- Magento:我在CMS页面上有一个工作的“添加到购物车”按钮……我如何使“自定义数量”系统工作