Установка фона для представления кнопок в XML делает кнопку неактивной - PullRequest
0 голосов
/ 07 ноября 2010

У меня есть кнопка, определенная в моем XML-файле.Кнопка работает точно так, как вы ожидаете ... пока я не добавлю строку внизу (android: background = "drawable / leftarrow1").Тогда кнопка больше не активируется в действии, но новый фон отображается так, как я хочу.

Что дает?

<Button
    android:id="@+id/switch_left"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:background="@drawable/leftarrow1" />

Вот код щелчка для справки

Button switchLeft = (Button) findViewById(R.id.switch_left);
switchLeft.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
       Log.w(this.getClass().getName(), "clicked left arrow");
    }
});

Ответы [ 2 ]

2 голосов
/ 07 ноября 2010

Я работаю совершенно нормально.Каждый щелчок записывается.

Я предполагаю, что вы используете твердый файл изображения (.png, .jpeg) в качестве фона.Если вы просто используете такое изображение, оно никогда не изменится при нажатии или выборе.Для этого есть список состояний, описанный здесь .

В этом XML-файле вы определяете изображения, которые будут отображаться в определенном состоянии, например, выбранное, нажатие и т. Д.

Еще один совет.Если вы хотите проверить функциональность кнопок, например, используйте этот вид кода.

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class TestButton extends Activity {

    Context ctx = null;
    Button btn = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.buttonbackground);

        ctx = getApplication();

        btn = (Button) findViewById(R.id.switch_left);

        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
               Toast.makeText(ctx, "Button clicked", 5000).show();
               // Log.w(this.getClass().getName(), "clicked left arrow");
            }
        });
    }
}

Вам будет легче распознать событие, поскольку сообщение с тостом является более визуальной обратной связью.

0 голосов
/ 07 ноября 2010

эй, приятель за показ кнопок с изображениями, есть кнопка ImageButton. попробуйте это в XML-файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...