8

そのため、現在、アプリ内にイースターエッグを入れて、を非表示にしたいのですButtonが、クリックすると(リックロール)。これまでのところ、私が言うときにそれを機能させることができます:

Button.setVisibility(view.VISIBLE);
Button.setBackgroundColor(Color.TRANSPARENT);

そして私のonClickListener。これに関する唯一の問題は、Buttonクリック可能にするためにテキストが必要なことです。テキストを取り出して完全に非表示にするとonClickListener、何らかの理由で呼び出されることはありませんか?

これが私のOnClickListener

wonderWhatThisDoes.setOnClickListener(new Button.OnClickListener()
{
    @Override
    public void onClick(View v) {
        mMediaPlayer = MediaPlayer.create(About.this, R.raw.surprise);
        mMediaPlayer.start();
        Context context = getApplicationContext();
        CharSequence text = "Congrats on finding our easter egg! Enjoy... :]";
        Toast toast = Toast.makeText(context, text, Toast.LENGTH_LONG);
        toast.show();
    }
});
4

10 に答える 10

15

レイアウトで、ボタンに。のような特定の幅を持たせますandroid:layout_width="40dp"

幅がwrap_content透明な背景でテキストなしに設定されている場合、Androidはそのビューの幅が0dpであると測定します。あなたはそれをクリックすることは決してできません。

于 2011-07-27T22:05:14.250 に答える
5

ボタン""..のテキストを作成してみてください

myButton.setText("    ");
于 2011-07-27T21:50:25.727 に答える
5

簡単な答えは、このようにアルファを0に設定します。

 <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:alpha="0"
                android:clickable="true"
                android:onClick="getAllImages"
                android:visibility="visible" />

それは非表示になり、onclickが機能します。

于 2015-03-04T10:06:09.393 に答える
4

LinearLayoutなどの任意のビューをクリック可能として作成できます。ボタンと同じサイズのLinearLayoutを作成し、onClickリスナーをイベントを処理するものに設定します。本質的に見えないので、同じ効果があります。

于 2011-07-27T22:02:44.030 に答える
3

wrap_contentテキストが「」の場合、ボタンが非常に小さくなるため、ボタンの幅と高さがに設定されていないことを確認してください。それでも問題が解決しない場合は、onClick()をonTouch()に置き換えてみることもできます。

button1.setOnTouchListener(new OnTouchListener()
{
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
        // TODO Auto-generated method stub
        return false;
    }
});
于 2011-07-27T22:01:38.130 に答える
1

ボタンを使用せず、アクティビティのdispatchTouchEventをオーバーライドして、そのように処理してください。

于 2011-07-27T22:01:10.737 に答える
1

OnClickListener任意のにを追加できるViewので、透明な画像を使用してを作成し、ImageViewそれにリスナーをアタッチしてみてください。

于 2011-07-27T22:03:00.097 に答える
1
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
     Button b = (Button) findViewById(R.id.button1);
     final CheckBox cb = (CheckBox) findViewById(R.id.checkBox1);
     b.setBackgroundColor(Color.TRANSPARENT);

     b.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            cb.setChecked(true);

このコードボタンは見えませんが、機能しました;))

于 2012-07-16T20:42:24.537 に答える
0

ボタンを無効にすることもできます(クリックできなくなります)。

Javaコードの場合:

btn.setClickable(false);

.xmlレイアウトの場合:

android:clickable="false"
于 2014-12-10T18:12:20.203 に答える
-1

これは私にとって適切に機能します:

  • btn.setClickable(false)GONE可視性について。
  • btn.setClickable(true)VISIBLE可視性について。
于 2017-04-05T09:23:37.300 に答える