2015-09-07 1 views
1

Я создаю динамическую кнопку в одном горизонтальном LinearLayout. теперь нужно изменить цвет в фоновом режиме, когда я выбрал, и в то время другая кнопка будет изменяться как обычная макета по умолчанию. я уже создать так: - enter image description hereизменить цвет, когда вкладка на этой кнопке (выбрана) и получить нормальный макет для другой кнопки

мой код так: -

for(int i=0;i<=5;i++) 
       { 
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
         LinearLayout.LayoutParams.WRAP_CONTENT, 
         LinearLayout.LayoutParams.WRAP_CONTENT,1.0f); 
       final TextView btn = new TextView(activity); 
       btn.setId(i); 
       final int id_ = btn.getId(); 
       btn.setText("button " + id_); 


       //btn.setBackgroundColor(Color.rgb(70, 80, 90)); 
       new_addonprice_name.addView(btn, params); 
        btn.setOnClickListener(new OnClickListener() { 
        @SuppressLint("ResourceAsColor") @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 
/*      new_addonprice_name.removeAllViews(); 
         String aaa = updatebutton();*/ 
          btn.setSelected(true); 

         Toast.makeText(activity, btn.getText().toString(), Toast.LENGTH_SHORT).show(); 
         btn.setBackgroundColor(R.color.black); 
        } 
       }); 
      } 
+0

привет @tej шах попробовать мой ответ ... – arun

ответ

1

положить _id в статическом контексте его для ранее щелкнул зрения. добавить белый цвет на вашем Рез/значений/color.xml

static int _id=-1; 

здесь код ..

LinearLayout lin = new LinearLayout(context); 
    lin.setLayoutParams(new ViewGroup.LayoutParams(
      ViewGroup.LayoutParams.FILL_PARENT, 
      ViewGroup.LayoutParams.WRAP_CONTENT)); 
    lin.setOrientation(LinearLayout.HORIZONTAL);   
    for (int i = 0; i <= 5; i++) { 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.WRAP_CONTENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f); 
     final TextView btn = new TextView(context); 
     btn.setId(i);   
     final int id_ = btn.getId(); 
     Log.i("id",""+id_); 
     btn.setText("button " + id_);      

     // btn.setBackgroundColor(Color.rgb(70, 80, 90)); 
     lin.addView(btn, params); 
     btn.setOnClickListener(new View.OnClickListener() { 

      @SuppressLint("ResourceAsColor") 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       /* 
       * new_addonprice_name.removeAllViews(); String aaa = 
       * updatebutton(); 
       */ 
       if(_id != -1) 
       {      
        TextView tv = (TextView) findViewById(_id);      
        tv.setBackgroundResource(R.color.white);             
       }     
       _id = id_; 
       btn.setSelected(true); 

       Toast.makeText(context, btn.getText().toString(), 
         Toast.LENGTH_SHORT).show(); 
       btn.setBackgroundColor(R.color.black); 

      } 
     }); 
+0

эй спасибо за тебя. но я получаю ошибку в TextView tv = (TextView) findViewById (_id); –

+0

какая ошибка? – arun

+0

TextView tv = (TextView) findViewById (_id); это не принимает. этот метод нужен R.id.name файла или управления –

0

Если я правильно вас понял, вам нужно selectors.

<Button 
    android:id="@+id/imageButtonSelector" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/new_button" /> 

Рез/рисуем/new_button.xml

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

ее не работает. .. я создаю динамическую кнопку. если я setbackgroundcolor, то его установите для всех кнопок. –

+0

Вы пишете TabHost? – user2413972

+0

нет нет. его только один layout.horizontal LinearLayout –

0
for(int i=0;i<=5;i++) 
       { 
      //final String check = "1"; 
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
         LinearLayout.LayoutParams.WRAP_CONTENT, 
         LinearLayout.LayoutParams.WRAP_CONTENT,1.0f); 
       final TextView btn = new TextView(activity); 
       btn.setId(i); 
       final int id_ = btn.getId(); 
       btn.setText("button " + id_); 
       // btn.setBackgroundResource(R.drawable.tab_selector); 


       //btn.setBackgroundColor(Color.rgb(70, 80, 90)); 
       new_addonprice_name.addView(btn, params); 
        btn.setOnClickListener(new OnClickListener() { 
        @SuppressLint("ResourceAsColor") @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 
/*      new_addonprice_name.removeAllViews(); 
         String aaa = updatebutton();*/ 
         // btn.setSelected(true);\ 
         //if(_id != -1) 
         for(int i=0;i<=5;i++) 
          {      
           TextView tv = (TextView)dialog.findViewById(i);      
           tv.setBackgroundColor(R.color.white);             
          }     
          // _id = id_; 

         Toast.makeText(activity, btn.getText().toString(), Toast.LENGTH_SHORT).show(); 
       btn.setBackgroundColor(R.color.black); 
        } 
       }); 
      } 
Смежные вопросы