Установить кнопку интерактивного свойство ложного

голоса
2

Мне нужно отключить click-eventдля кнопки в Android. Так же , как образец, я попытался сделать следующее. Я взял TextViewназвал его (вводится текст) в качестве имени . Проверяет состояние , если TextViewпусто кнопка и интерактивный должны быть установлены в ложь. Однако этого не происходит , когда Toast печатается. Может somemone сказать мне причину. Кроме того, если текстовое поле не является пустым , я хочу , чтобы сбросить clickable eventна кнопку как истинная.

Java файл:

public class ButtonclickabkeActivity extends Activity {
    TextView tv;
    Button btn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv = (TextView) findViewById(R.id.textView1);
        tv.setText(Name);
        btn = (Button) findViewById(R.id.button1);

        if (tv.getText().toString().length() != 0) {
            btn.setClickable(false);
            Toast.makeText(getApplicationContext(),  + tv.getText().toString().length(), Toast.LENGTH_LONG).show();
        } else {
            btn.setClickable(true);
        }
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                Toast.makeText(getApplicationContext(), Button clicked, Toast.LENGTH_LONG).show();
            }
        });
    }
}

XML-файл:

<?xml version=1.0 encoding=utf-8?>
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
    android:orientation=vertical
    android:layout_width=fill_parent
    android:layout_height=fill_parent>
    <TextView  
        android:layout_width=fill_parent 
        android:layout_height=wrap_content 
        android:text=@string/hello/>
    <TextView 
        android:text=TextView 
        android:id=@+id/textView1 
        android:layout_width=wrap_content 
        android:layout_height=wrap_content/>
    <Button 
        android:text=Button 
        android:id=@+id/button1 
        android:layout_width=wrap_content 
        android:layout_height=wrap_content/>
</LinearLayout>
Задан 21/07/2012 в 13:04
источник пользователем
На других языках...                            


3 ответов

голоса
10

использование

btn.setEnable(false);

вместо

btn.setClickable(false);
Ответил 21/07/2012 в 13:08
источник пользователем

голоса
0

В моем случае

getActivity().runOnUiThread(new Runnable() {
    @Override
    public void run() {
         view.setEnabled(false);
    }
 });
Ответил 23/04/2015 в 11:26
источник пользователем

голоса
0

Пользователь 370305 правильно. .setEnableявляется то , что ищет. Или вы могли бы использовать android:clickableв файле макета XML.

Ответил 21/07/2012 в 13:24
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more