2016-07-11 2 views
0

Я создаю образец приложения, содержащий ActivityListView и Button] в файле макета. ListView - это обычай, содержащий [Ярлык/Имя и CheckBox]. Я хочу написать код, который изменит текст Button из класса адаптера ListView на основе элемента списка CheckBox [T/F].Как обновить пользовательский интерфейс активности на основе выбора элемента ListView?

+0

@SathishKumarJ Как приходят класс ADAPTER справитесь хотя выше метод помогает обновить пользовательский интерфейс. Поскольку экземпляр Button находится в классе Activity, который мне нужно обрабатывать из класса адаптера. Пожалуйста, внимательно прочитайте вопрос. – VVB

+0

Я думаю, вы можете использовать интерфейсы. На основе onCheck checkBox callBack вы можете изменить текст. – Raghavendra

+0

@ Raghavendra Пожалуйста, внимательно прочитайте вопрос и над комментарием. – VVB

ответ

0
 listView.setOnItemClickListener(new OnItemClickListener() 
      { 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
       { 
        // When clicked, show a toast with the TextView text 
        AppListOfAllApps Selecteditems = (AppListOfAllApps) parent.getItemAtPosition(position); 
        if (view != null) 
        { 
         CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkBox1); 
         Selecteditems = (AppListOfAllApps) checkBox.getTag(); 
         //here you will get the selected item you may also get the text from it accordingly and then using using button variable just set text 
button.settext("whatever"); 
        } 
       } 
      }); 
0

В деятельности:

public class Your_Activity extends Activity implements OnCheckListener// Implement your listener here 

@Override 
public void OnCheck(int position) { 
    // TODO Auto-generated method stub 
    // notify your activity component here 
} 

В классе адаптера:

private OnCheckListener listener; 

public interface OnCheckListener { 
    public void OnCheck(int position); 
} 

public Your_adapter_constructor(OnCheckListener listener) { 
    // TODO Auto-generated constructor stub 
    this.listener = listener; 
} 

// On your getView() 
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
        listener.OnCheck(position);// If you want to pass some value add it here 
       } 
      }); 
+0

Пробовал ваш код. Не работает. Он не просто входит в метод слушателя Activity. – VVB

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