Kann nicht festgelegt werden, OnCheckedChangeListener einer Checkbox
Ich bin versucht, einen OnCheckedChangeListener
zu einem CheckBox
aber meine Anwendung beendet wird in der Laufzeit. Ich habe auch versucht, die Zuhörer für meine TextView
und ich bekomme immer noch das gleiche Ergebnis. Kann mir jemand helfen?
import android.app.ListActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class ListViewActivity extends ListActivity implements OnCheckedChangeListener {
TextView label;
CheckBox checkBox;
public class MyCustomAdapter extends ArrayAdapter<String> {
public MyCustomAdapter(Context context, int textViewResourceId,
String[] objects) {
super(context, textViewResourceId, objects);
//TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//TODO Auto-generated method stub
//return super.getView(position, convertView, parent);
View row = convertView;
if(row==null){
LayoutInflater inflater=getLayoutInflater();
row=inflater.inflate(R.layout.main, parent, false);
}
label=(TextView)row.findViewById(R.id.weekofday);
label.setText(month[position]);
checkBox=(CheckBox)row.findViewById(R.id.checkBox);
return row;
}
}
String[] month = {
"January", "February", "March", "April",
"May", "June", "July", "August",
"September", "October", "November", "December"
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
/*setListAdapter(new ArrayAdapter<String>(this,
R.layout.row, R.id.weekofday, DayOfWeek));*/
setListAdapter(new MyCustomAdapter(ListViewActivity.this, R.layout.main, month));
checkBox.setOnCheckedChangeListener(this); //my application exits here!!!!
}
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
//TODO Auto-generated method stub
//Toast.makeText(getApplicationContext(), "box checked", Toast.LENGTH_LONG);
}
}
InformationsquelleAutor Traveling Salesman | 2012-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht setzen Sie die Zuhörer für Ihre
CheckBox
von derListView
wie(wird es wahrscheinlich werfen Sie einenNullPointerException
), stattdessen legen Sie den Hörer in diegetView()
Methode(Sie haben auch zu halten, dieCheckBox
status, so dass Sie am Ende nicht mit fremden Zeilen, status). Unten wird ein Beispiel:Für die
TextView
Sie haben zu tun die gleiche Sache.InformationsquelleAutor Luksprog
Implementieren CheckBox Zuhörer für Ihre Klasse auf diese Weise, besonders wenn Sie mehr als eine CheckBox zu beschäftigen, die Sie behandeln können in switch-case-Blöcke und macht den code übersichtlicher:
In Ihrer onCreate () - Methode setzen:
Listern für Ihre Kontrollkästchen Ansicht Ereignis wie dieses:
InformationsquelleAutor S bruce
InformationsquelleAutor Vikas Godiyal