2013-02-26 2 views
0

в макете Я нажимаю на кнопку, чтобы показать список всех чертежей в res/drawable, когда я нажал на один из них. Мне нужно показать тот же макет, на мой вопрос, как получить доступ к кнопке, пользователь нажал перед темselected item in listview

public void onItemClick(AdapterView<?> arg0, View arg1, 
     int arg2, long arg3) { 
    setContentView(layoutIds[position]); 
    Button button=allButtonsInLayout.get(arg2); 
    button.setBackgroundResource(R.drawable.images_sos); 
} 

я могу изменить фон, если я:

Button button=(Button)findViewById(R.id.button); 

, но ничего не произойдет, если изменить эту строку в

Button button=allButtonsInLayout.get(arg2); 
+0

Если вам нужно больше объяснений по поводу моего вопроса, я здесь – Sharp

+0

Успех, чтобы показать список всех макетов и еще один со всеми кнопками щелкнутого макета, я также могу отобразить все чертежи в res и после этого i я должен показать один и тот же макет, но с новым фоном (выталкиваемый я нажал) на кнопку, которую я нажал до – Sharp

+0

, пожалуйста, если вам нужно больше кода, чтобы понять мой вопрос, я могу дать вам – Sharp

ответ

0
setContentView(R.layout.otherview); 
         //matable is a table of all drawable it contains exactly thier id 
         //then i creat exactly the same number of buttons than the number of drawable's id 
         for (int k1=0;k1<matable.length;k1++){ 

          LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.MATCH_PARENT, 
            LinearLayout.LayoutParams.WRAP_CONTENT); 
          Button btn = new Button(getBaseContext()); 
          btn.setId(k1); 
          final int id_ = btn.getId(); 
          LinearLayout linear = (LinearLayout) findViewById(R.id.linearscroll); 
          linear.addView(btn, params); 
          final Button btn1 = ((Button) findViewById(id_)); 
          try{ 
           btn1.setBackgroundResource(matable[k1]); 
           ht = new Hashtable<Integer, Integer>(); 
           ht.put(id_, matable[k1]); 
           ht.put(3, 145); 
          }catch(Exception e){ 
           e.printStackTrace(); 
          } 
          btn1.setId(k1); 
          btn1.setOnClickListener(new View.OnClickListener() { 
           @SuppressWarnings("deprecation") 
           public void onClick(View view) { 
            setContentView(lemien); 
            int test=v.getId(); 
            test=test+3; 
            //and it 's exactly here where i make the comparaison 
            if(btn1.getId()==view.getId()){ 

             int cpt=0; 
             tabIdButton[cpt]=view.getId(); 
             d=btn1.getBackground(); 


             BitmapDrawable bmd = (BitmapDrawable) d; 

             Bitmap bm = bmd.getBitmap(); 
             ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
             bm.compress(Bitmap.CompressFormat.JPEG, 100, stream); 
             byte[] bitmapdata = stream.toByteArray(); 

             try{ 
              Button btn3 = ((Button) findViewById(v.getId())); 
              btn3.setBackgroundDrawable(d); 
              SQLiteAdapter mySQLiteAdapter =new SQLiteAdapter(getBaseContext()); 
              mySQLiteAdapter.openToWrite(); 
              mySQLiteAdapter.insertintdrawableid(btn3.getId()); 

              mySQLiteAdapter.insertphotobouton(bitmapdata); 

              mySQLiteAdapter.close(); 
              Log.v("btn2", "btn2 j'ai chnagé"); 
             }catch(Exception e){ 
              e.printStackTrace(); 

            } 

           }