2015-05-05 4 views
0

Я работаю в android. Где я создал одно представление списка, и каждая строка списка содержит два текстовых поля редактирования и две кнопки, теперь я хочу установить onclicklistener на кнопку, но я Я получаю error.so вы можете помочь в этом ...Как установить onclicklistener разной кнопки макета

installation.java

setContentView(R.layout.activity_installation); 
     Datalist=(ListView)findViewById(R.id.installationList); 

     ButtonLayout ViewButton=new ButtonLayout(); 


     ArrayList<HashMap<String, String>> arl = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("hashMap"); 


     SimpleAdapter adapter = new SimpleAdapter(
       Installation.this, arl, 
       R.layout.activity_button_layout, new String[] 
         { 
         TAG_Title,TAG_URL 
         }, new int[] { 
         R.id.InnerText1,R.id.URL1 }); 

     Datalist.setAdapter(adapter); 




     ViewButton.ClickButton = (ImageButton)activity_button_layout.findViewById(R.id.ImageButton011); 

     ViewButton.ClickButton.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View view) { 
       Log.i("Edit Button Clicked", "*********"); 
       } 
      }); 

я получаю ошибку, что activity_button_layout не может быть решена .when я использую его ViewButton.ClickButton = (ImageButton)activity_button_layout.findViewById(R.id.ImageButton011);

activity_button_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<AbsoluteLayout 
    android:id="@+id/widget36" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/listbackground" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 

<ImageButton 
    android:id="@+id/widget37" 
    android:layout_width="46dp" 
    android:layout_height="48dp" 
    android:layout_x="275dp" 
    android:layout_y="5dp" 
    android:src="@drawable/download" 
    /> 

<TextView 
    android:id="@+id/InnerText1" 
    android:layout_width="265dp" 
    android:layout_height="wrap_content" 
    android:layout_x="8dp" 
    android:layout_y="9dp" 
    android:background="#07000000" 
    android:text=" " 
    android:textColor="#ffffff" 
    android:textSize="14sp" /> 

<ImageButton 
    android:id="@+id/ImageButton011" 
    android:layout_width="46dp" 
    android:layout_height="48dp" 
    android:layout_x="315dp" 
    android:layout_y="5dp" 
    android:clickable="true" 
    android:onClick="clickImage" 
    android:src="@drawable/viewdoc" /> 

<TextView 
    android:id="@+id/URL1" 
    android:layout_width="241dp" 
    android:layout_height="wrap_content" 
    android:layout_x="6dp" 
    android:layout_y="38dp" 
    android:textColor="#ff5d5d5d" 
    android:textStyle="bold" /> 

</AbsoluteLayout> 

ButtonLayout.java

private static final String TAG_InnerText = "InnerText"; 
    private static final String TAG_Title = "Title"; 
    private static final String TAG_URL = "URL"; 


    public ImageButton ClickButton=null; 
    EditText EditURL=null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_button_layout); 
    } 
+0

это ошибка времени соблюдения правил? hv u объявлен activity_button_layout? – KOTIOS

+0

, где вы начали activity_button_layout – Lokesh

+0

да ... Он корректно работает на ViewButton.ClickButton = (ImageButton) findViewById (R.id.ImageButton011); но когда он дошел до слушателя onclick, моя активность прекратилась. –

ответ

0

попробовать это,

ImageButton imageButton = (ImageButton) findViewById(R.id.ImageButton011); 

imageButton.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     Log.i("Edit Button Clicked", "*********"); 
    } 
}); 
0

использовать это в вашем адаптере

ViewButton.ClickButton = (ImageButton)activity_button_layout.findViewById(R.id.ImageButton011); 

    ViewButton.ClickButton.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View view) { 
      Log.i("Edit Button Clicked", "*********"); 
      } 
     }); 
+0

получаю ошибку на activity_button_layout –

+0

Вы использовали LayoutInflater Inflater = (LayoutInflater) контекст \t \t \t \t .getSystemService (Context.LAYOUT_INFLATER_SERVICE); Посмотреть activity_button_layout = inflater.inflate (R.layout.activity_button_layout, \t \t \t \t контейнера, ложь); в вашем адаптере –

0

R.layout.activity_button_layout является идентификатором ресурса, определенного в R.xml, а не ссылку на созданный зрения любого рода, поэтому пытаются использовать activity_button_layout как таковой будет иметь мало смысла.

Вместо этого вы должны переопределить метод getView() из вашего простого адаптера, а после раздувания одного элемента списка присоедините onClickListener к нужному подвью.

Смежные вопросы