Thenextone
- Forum-Beiträge: 8
22.01.2012, 09:43:22 via Website
22.01.2012 09:43:22 via Website
Kann mir jemand erklären, wie ich eine Checkbox abfangen kann?
Ich habe eine ListView mit passendem ArrayAdapter. Egal wo ich ein OnCheckedChange-Event oder OnItemClickListener
einbaue, passiert gar nichts. Und mit Gar Nichts meine ich wirklich Gar Nichts. Weder irgendwelche Log-Ausgaben
oder sonst was.
Das ganze Projekt direkt von Eclipse ausgecheckt findet ihr hier: Projekt
Wäre ganz dringend und komme wirklich nicht mehr weiter
Hier sind mal Adapter und ListActivity:
Ich habe eine ListView mit passendem ArrayAdapter. Egal wo ich ein OnCheckedChange-Event oder OnItemClickListener
einbaue, passiert gar nichts. Und mit Gar Nichts meine ich wirklich Gar Nichts. Weder irgendwelche Log-Ausgaben
oder sonst was.
Das ganze Projekt direkt von Eclipse ausgecheckt findet ihr hier: Projekt
Wäre ganz dringend und komme wirklich nicht mehr weiter
Hier sind mal Adapter und ListActivity:
1public CustomAdapter(Context context, int textViewResourceId, ArrayList<Channel> items) {
2 super(context, textViewResourceId, items);
3 this.items = items;
4 this.context = context;
5 this.resourceID = textViewResourceId;
6 }
7
8 @Override
9 public View getView(int position, View convertView, ViewGroup parent) {
10 v = convertView;
11 if(v == null){
12 LayoutInflater vi = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
13 v = vi.inflate(resourceID, null);
14 }
15 c = items.get(position);
16 if(c != null){
17 if(resourceID == R.layout.favourite_settings_row) {
18 setSettingView(position);
19 }
20 if(resourceID == R.layout.all_channels_row) {
21 setAllChannelsView();
22 }
23 }
24 return v;
25 }
26 private void setAllChannelsView() {
27 TextView name = (TextView) v.findViewById(R.id.channelTitleAllChannels);
28 if(name != null)
29 name.setText(c.getTitle());
30 }
31 private void setSettingView(int position) {
32 TextView name = (TextView) v.findViewById(R.id.channelTitleSettings);
33 CheckBox isFavourite = (CheckBox) v.findViewById(R.id.isFavourite);
34 if(name != null){
35 name.setText(c.getTitle());
36 }
37 if(isFavourite != null) {
38 isFavourite.setTag(position);
39 isFavourite.setOnCheckedChangeListener(this);
40 }
41 }
42 @Override
43 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
44 int position = (Integer) buttonView.getTag();
45 View view = getView(position, v, null);
46 CheckBox test = (CheckBox) view.findViewById(R.id.isFavourite);
47 Channel c = getItem(position);
48 c.setFavourite(test.isChecked());
49
50 System.out.println("##############################################");
51 }
52}
2 super(context, textViewResourceId, items);
3 this.items = items;
4 this.context = context;
5 this.resourceID = textViewResourceId;
6 }
7
8 @Override
9 public View getView(int position, View convertView, ViewGroup parent) {
10 v = convertView;
11 if(v == null){
12 LayoutInflater vi = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
13 v = vi.inflate(resourceID, null);
14 }
15 c = items.get(position);
16 if(c != null){
17 if(resourceID == R.layout.favourite_settings_row) {
18 setSettingView(position);
19 }
20 if(resourceID == R.layout.all_channels_row) {
21 setAllChannelsView();
22 }
23 }
24 return v;
25 }
26 private void setAllChannelsView() {
27 TextView name = (TextView) v.findViewById(R.id.channelTitleAllChannels);
28 if(name != null)
29 name.setText(c.getTitle());
30 }
31 private void setSettingView(int position) {
32 TextView name = (TextView) v.findViewById(R.id.channelTitleSettings);
33 CheckBox isFavourite = (CheckBox) v.findViewById(R.id.isFavourite);
34 if(name != null){
35 name.setText(c.getTitle());
36 }
37 if(isFavourite != null) {
38 isFavourite.setTag(position);
39 isFavourite.setOnCheckedChangeListener(this);
40 }
41 }
42 @Override
43 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
44 int position = (Integer) buttonView.getTag();
45 View view = getView(position, v, null);
46 CheckBox test = (CheckBox) view.findViewById(R.id.isFavourite);
47 Channel c = getItem(position);
48 c.setFavourite(test.isChecked());
49
50 System.out.println("##############################################");
51 }
52}
1public class SettingsActivity extends ListActivity implements OnClickListener {
2 private ArrayList<Channel> channels = new ArrayList<Channel>();
3 private CustomAdapter adapter;
4 private Button back, save, login, register;
5 private TouchListView listView = null;
6
7 @Override
8 protected void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.settings);
11 this.back = (Button) findViewById(R.id.closeSettings);
12 this.back.setOnClickListener(this);
13 this.save = (Button) findViewById(R.id.saveSettings);
14 this.save.setOnClickListener(this);
15 listView = (TouchListView) getListView();
16 channels = JsonParser.getChannels();
17 this.adapter = new CustomAdapter(this, R.layout.favourite_settings_row, channels);
18 setListAdapter(adapter);
19 listView.setDropListener(onDrop);
20 listView.setRemoveListener(onRemove);
21 }
22 private TouchListView.DropListener onDrop = new TouchListView.DropListener() {
23 @Override
24 public void drop(int from, int to) {
25 Channel item = adapter.getItem(from);
26 adapter.remove(item);
27 adapter.insert(item, to);
28 }
29 };
30 private TouchListView.RemoveListener onRemove = new TouchListView.RemoveListener() {
31 @Override
32 public void remove(int which) {
33 adapter.remove(adapter.getItem(which));
34 }
35 };
36 @Override
37 public void onClick(View v) {
38 if(v.equals(back)){
39 this.finish();
40 }
41 if(v.equals(save)) {
42 [...]
43 this.finish();
44 }
45 }
46}
2 private ArrayList<Channel> channels = new ArrayList<Channel>();
3 private CustomAdapter adapter;
4 private Button back, save, login, register;
5 private TouchListView listView = null;
6
7 @Override
8 protected void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.settings);
11 this.back = (Button) findViewById(R.id.closeSettings);
12 this.back.setOnClickListener(this);
13 this.save = (Button) findViewById(R.id.saveSettings);
14 this.save.setOnClickListener(this);
15 listView = (TouchListView) getListView();
16 channels = JsonParser.getChannels();
17 this.adapter = new CustomAdapter(this, R.layout.favourite_settings_row, channels);
18 setListAdapter(adapter);
19 listView.setDropListener(onDrop);
20 listView.setRemoveListener(onRemove);
21 }
22 private TouchListView.DropListener onDrop = new TouchListView.DropListener() {
23 @Override
24 public void drop(int from, int to) {
25 Channel item = adapter.getItem(from);
26 adapter.remove(item);
27 adapter.insert(item, to);
28 }
29 };
30 private TouchListView.RemoveListener onRemove = new TouchListView.RemoveListener() {
31 @Override
32 public void remove(int which) {
33 adapter.remove(adapter.getItem(which));
34 }
35 };
36 @Override
37 public void onClick(View v) {
38 if(v.equals(back)){
39 this.finish();
40 }
41 if(v.equals(save)) {
42 [...]
43 this.finish();
44 }
45 }
46}
— geändert am 22.01.2012, 09:48:03
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.