Java 安卓-错误线程和按钮仍然可以点击
读这个:我想喜欢这个。。。。如果用户输入名称并选择游戏类型。用户可以单击“确定”按钮。若用户并没有输入名称并选择游戏类型,他就不能点击“确定”按钮 我创建线程来解决这个问题。。。 但是当我运行这个应用程序时。我不能再访问此UI 方法“自动验证”中出现错误 和代码userConfigOK.setClickable(false)不起作用。我不知道为什么 顺便说一句,android很难 这是源代码:Java 安卓-错误线程和按钮仍然可以点击,java,android,multithreading,click,thread-safety,Java,Android,Multithreading,Click,Thread Safety,读这个:我想喜欢这个。。。。如果用户输入名称并选择游戏类型。用户可以单击“确定”按钮。若用户并没有输入名称并选择游戏类型,他就不能点击“确定”按钮 我创建线程来解决这个问题。。。 但是当我运行这个应用程序时。我不能再访问此UI 方法“自动验证”中出现错误 和代码userConfigOK.setClickable(false)不起作用。我不知道为什么 顺便说一句,android很难 这是源代码: public class UserConfig extends Activity { private
public class UserConfig extends Activity {
private String gameType;
private String gameTime;
private String playerName;
private int IDChar = 0;
Thread validation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_config);
userConfigOK.setClickable(false);
inputName();
chooseCharacter();
setGameType();
back();
autoValidation();
OK();
}
public void inputName() {
playerName = userNameTextbox.getText().toString();
}
public void setGameType() {
gameTypes.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View arg1,
int arg2, long arg3) {
gameType = (String) gameTypes.getSelectedItem();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
public void OK() {
userConfigOK.setOnClickListener( new OnClickListener() {
@SuppressWarnings("deprecation")
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(UserConfig.this, EnemyConfig1.class);
startActivity(intent);
validation.stop();
}
});
}
public void autoValidation() {
validation = new Thread(new Runnable() {
@Override
public void run() {
if( ( !gameType.trim().equals("") ) && ( !playerName.trim().equals("") ) )
{
userConfigOK.setClickable(true);
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
validation.start();
}
public类UserConfig扩展活动{
私有字符串游戏类型;
私人字符串游戏时间;
私人弦乐演奏者姓名;
私有int IDChar=0;
线程验证;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.user\u config);
userConfigOK.setClickable(错误);
inputName();
选择角色();
setGameType();
背();
自动验证();
OK();
}
public void inputName(){
playerName=userNameTextbox.getText().toString();
}
public void setGameType(){
游戏类型。setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView,视图arg1,
整数arg2,长arg3){
gameType=(字符串)gameTypes.getSelectedItem();
}
@凌驾
未选择公共无效(AdapterView arg0){
}
});
}
公共无效OK(){
userConfigOK.setOnClickListener(新的OnClickListener(){
@抑制警告(“弃用”)
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
Intent Intent=new Intent(UserConfig.this,EnemyConfig1.class);
星触觉(意向);
validation.stop();
}
});
}
公共无效自动验证(){
验证=新线程(新可运行(){
@凌驾
公开募捐{
如果((!gameType.trim().equals(“”))和(&(!playerName.trim().equals(“”))
{
userConfigOK.setClickable(真);
}
试一试{
睡眠(100);
}捕捉(中断异常e){
e、 printStackTrace();
}
}
});
validation.start();
}
}您可以让onClickListener检查是否输入了任何文本,以及是否有从网格中选择的项目。如果用户没有选择任何内容,您可以制作一个Toast,提示用户输入所需的值。您可以让onClickListener检查是否输入了任何文本,以及是否有从网格中选择的项目。如果用户没有选择任何内容,您可以制作一个Toast,提示用户输入所需的值。您可以让onClickListener检查是否输入了任何文本,以及是否有从网格中选择的项目。如果用户没有选择任何内容,您可以制作一个Toast,提示用户输入所需的值。您可以让onClickListener检查是否输入了任何文本,以及是否有从网格中选择的项目。如果用户没有选择任何内容,您可以制作一个祝酒词,提示用户输入所需的值。试试这个
userConfigOK.setEnabled(false);
而不是
userConfigOK.setClickable(false);
试试这个
userConfigOK.setEnabled(false);
而不是
userConfigOK.setClickable(false);
试试这个
userConfigOK.setEnabled(false);
而不是
userConfigOK.setClickable(false);
试试这个
userConfigOK.setEnabled(false);
而不是
userConfigOK.setClickable(false);
将文本更改lisener设置为输入字段,而不是线程验证。我不明白。我是android新手,不用线程验证,而是将文本更改lisener设置为输入字段。我不明白。我是android新手,不用线程验证,而是将文本更改lisener设置为输入字段。我不明白。我是android新手,不用线程验证,而是将文本更改lisener设置为输入字段。我不明白。我是机器人新手