Я создаю образец приложения, содержащий Activity
[с ListView
и Button
] в файле макета. ListView
- это обычай, содержащий [Ярлык/Имя и CheckBox]. Я хочу написать код, который изменит текст Button
из класса адаптера ListView
на основе элемента списка CheckBox
[T/F].Как обновить пользовательский интерфейс активности на основе выбора элемента ListView?
0
A
ответ
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
@SathishKumarJ Как приходят класс ADAPTER справитесь хотя выше метод помогает обновить пользовательский интерфейс. Поскольку экземпляр Button находится в классе Activity, который мне нужно обрабатывать из класса адаптера. Пожалуйста, внимательно прочитайте вопрос. – VVB
Я думаю, вы можете использовать интерфейсы. На основе onCheck checkBox callBack вы можете изменить текст. – Raghavendra
@ Raghavendra Пожалуйста, внимательно прочитайте вопрос и над комментарием. – VVB