Android listitem单击时崩溃
我有一个带有自定义listview的导航抽屉,我想让它在单击某个项目时,所选项目的文本会发生更改。 我遇到的问题是没有重新创建listview,也没有更改textcolor,即使我调用notifydatasetchanged()。我不知道是什么问题。谢谢:) McClick侦听器:Android listitem单击时崩溃,android,listview,navigation-drawer,baseadapter,onitemclicklistener,Android,Listview,Navigation Drawer,Baseadapter,Onitemclicklistener,我有一个带有自定义listview的导航抽屉,我想让它在单击某个项目时,所选项目的文本会发生更改。 我遇到的问题是没有重新创建listview,也没有更改textcolor,即使我调用notifydatasetchanged()。我不知道是什么问题。谢谢:) McClick侦听器: public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { getSup
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame_main, new CampusLifeFragment()).commit();
getActionBar().setTitle(mDrawerItems[i]);
listAdapter = new DrawerListAdapter(LayoutInflater.from(this));
listadapter.setSelectedItem(i);
listAdapter.notifyDataSetChanged();
mDrawerLayout.closeDrawer(mDrawerList);
}
public void onItemClick(AdapterView AdapterView,视图视图,int i,long l){
getSupportFragmentManager().beginTransaction().replace(R.id.content\u frame\u main,新的CampusLifeFragment()).commit();
getActionBar().setTitle(mDrawerItems[i]);
listAdapter=new-DrawerListAdapter(LayoutInflater.from(this));
listadapter.setSelectedItem(i);
listAdapter.notifyDataSetChanged();
mDrawerLayout.closeDrawer(mDrawerList);
}
抽屉式适配器:
public class DrawerListAdapter extends BaseAdapter {
private LayoutInflater inflater;
private int mSelectedItem;
private int[] mDrawerDrawables = {R.drawable.ic_settings, R.drawable.ic_about};
public DrawerListAdapter(LayoutInflater inflater) {
this.inflater = inflater;
}
public int getSelectedItem() {
return mSelectedItem;
}
public void setSelectedItem(int i) {
mSelectedItem = i;
}
@Override
public int getCount() {
return mDrawerItems.length;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (position <= 3) {
convertView = inflater.inflate(R.layout.layout_drawer_primary, null);
TextView titlePrimary = (TextView) convertView.findViewById(R.id.textView_drawer_list_primary);
titlePrimary.setText(mDrawerItems[position]);
titlePrimary.setTextColor((mSelectedItem == position) ? Color.parseColor("#3f51b5") : Color.parseColor("#454545"));
return convertView;
} else {
convertView = inflater.inflate(R.layout.layout_drawer_secondary, null);
TextView titlesecondary = (TextView) convertView.findViewById(R.id.textView_drawer_list_secondary);
titlesecondary.setText(mDrawerItems[position]);
ImageView imageView = (ImageView) convertView.findViewById(R.id.imageView_drawer_list_secondary);
imageView.setImageResource(mDrawerDrawables[position - 4]);
return convertView;
}
}
}
public类drawerlistatadapter扩展了BaseAdapter{
私人充气机;
私有内部mSelectedItem;
private int[]mDrawerDrawables={R.drawable.ic_设置,R.drawable.ic_about};
公共抽屉式空气调节器(充气式空气调节器){
这个。充气机=充气机;
}
public int getSelectedItem(){
返回mSelectedItem;
}
公共无效集合选择项(int i){
mSelectedItem=i;
}
@凌驾
public int getCount(){
返回mDrawerItems.length;
}
@凌驾
公共对象getItem(int i){
返回null;
}
@凌驾
公共长getItemId(int i){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
如果(位置如果您只想更改颜色,请将listAdapter另存为成员变量,如
protected void onCreate(Bundle savedInstanceState) {
mListAdapter = new DrawerListAdapter(LayoutInflater.from(this));
}
然后
public void onItemClick(AdapterView AdapterView,视图视图,int i,long l){
getSupportFragmentManager().beginTransaction().replace(R.id.content\u frame\u main,新的CampusLifeFragment()).commit();
getActionBar().setTitle(mDrawerItems[i]);
mListAdapter.setItemChecked(i);
mListAdapter.notifyDataSetChanged();
mDrawerLayout.closeDrawer(mDrawerList);
}
或者,如果要制作新适配器
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame_main, new CampusLifeFragment()).commit();
getActionBar().setTitle(mDrawerItems[i]);
DrawerListAdapter listAdapter = new DrawerListAdapter(LayoutInflater.from(this));
mDrawerLayout.closeDrawer(mDrawerList);
mDrawerList.setAdapter(listAdapter);
listAdapter.setItemChecked(i);
listAdapter.notifyDataSetChanged();
}
public void onItemClick(AdapterView AdapterView,视图视图,int i,long l){
getSupportFragmentManager().beginTransaction().replace(R.id.content\u frame\u main,新的CampusLifeFragment()).commit();
getActionBar().setTitle(mDrawerItems[i]);
DroperListAdapter=新的DroperListAdapter(LayoutFlater.from(this));
mDrawerLayout.closeDrawer(mDrawerList);
mDrawerList.setAdapter(listAdapter);
listAdapter.setItemChecked(i);
listAdapter.notifyDataSetChanged();
}
你在应用程序中使用了哪个主题
?发布你的style.xml
。我已经发布了我的主题
protected void onCreate(Bundle savedInstanceState) {
mListAdapter = new DrawerListAdapter(LayoutInflater.from(this));
}
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame_main, new CampusLifeFragment()).commit();
getActionBar().setTitle(mDrawerItems[i]);
mListAdapter.setItemChecked(i);
mListAdapter.notifyDataSetChanged();
mDrawerLayout.closeDrawer(mDrawerList);
}
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame_main, new CampusLifeFragment()).commit();
getActionBar().setTitle(mDrawerItems[i]);
DrawerListAdapter listAdapter = new DrawerListAdapter(LayoutInflater.from(this));
mDrawerLayout.closeDrawer(mDrawerList);
mDrawerList.setAdapter(listAdapter);
listAdapter.setItemChecked(i);
listAdapter.notifyDataSetChanged();
}