单击时如何仅更改一个按钮的背景?

时间:2014-07-23 05:49:50

标签: android button selector

我正在以编程方式生成我的按钮。我想将点击按钮的背景更改为menuitemsactivity_button_backgrnd

按钮的默认背景为popup。我已经完成了以下编码,但问题是,当我单击第一个按钮时,它会更改其背景,然后当我单击第二个按钮时,第二个按钮会更改其背景,但第一个按钮具有相同的menuitemsactivity_button_backgrnd背景。 / p>

我想要做的只是改变点击按钮的背景,即一次只有一个按钮有menuitemsactivity_button_backgrnd背景。

我发布我的代码请一步一步指导我:

            final Button tv1 = new Button(this);
            tv1.setId(i);
            tv1.setText(value);
            tv1.setTextSize(35);

            tv1.setTextColor(Color.parseColor("#1569C7"));
            tv1.setGravity(Gravity.CENTER);
            tv1.setBackgroundDrawable(getResources().getDrawable(R.drawable.popup));
            tv1.setLayoutParams(new LinearLayout.LayoutParams(300,90));
            tv1.setOnClickListener(getOnClickDoSomething(tv1)); 
            l1.addView(tv2);


          private OnClickListener getOnClickDoSomething(final Button tv1) {
           // TODO Auto-generated method stub

             return new View.OnClickListener() {
            public void onClick(View v) {


                String text = tv1.getText().toString();

                Log.e("text message", "" + text);
                tv1.setBackgroundDrawable(getResources().getDrawable(R.drawable.menuitemsactivity_button_backgrnd));
                Toast.makeText(MenuItemsActivity.this, "clicked"+v.getId()+","+tv1.getId(), 1000)
                        .show();


            }
        };
}

menuitemsactivity_button_backgrnd

  <?xml version="1.0" encoding="utf-8"?>
     <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"     
      android:drawable="@drawable/blue_tab"
       />

    </selector>

1 个答案:

答案 0 :(得分:0)

尝试做这样的事情:

"<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true"     
  android:drawable="@drawable/blue_tab"
   />
 <item android:state_pressed="false"     
  android:drawable="@drawable/whatever_the_unselected_drawable_is"
   />
</selector>"