-3

我试图调整列表视图到alertDialog,该程序在dialog.setAdapter与nullPointerExeption崩溃。对话框列表适配器在nullPointerExeption崩溃

当用户点击listview中的项目时,alertDialog应该弹出。

ArrayAdapter<String> dialogAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, userFunc); 
    lv.setAdapter(dialogAdapter); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 


      if (position == 0) { 


       AlertDialog.Builder alertDialog = new AlertDialog.Builder(ManagerFunctions.this); 
       LayoutInflater inflater = getLayoutInflater(); 
       View convertView = (View) inflater.inflate(R.layout.user_op_list, null); 
       alertDialog.setView(convertView); 
       alertDialog.setTitle("Choose option"); 
       lv = (ListView) convertView.findViewById(R.id.lv); 

       alertDialog.show(); 

这行是一个我在收到错误:

 lv.setAdapter(dialogAdapter); 
+0

哪里是你的错误日志? – Amy

+0

@RaviRupareliya –

+0

初始化lv – Amy

回答

0

得到了它,我需要声明我ArrayAdapter作为最终,因为它不能从内部类访问。

这样:

final String[] userFunc = new String[]{"חדש","מחק","ערוך"}; 
    final ArrayAdapter<String> dialogAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, userFunc); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 


      if (position == 0) { 


       AlertDialog.Builder alertDialog = new AlertDialog.Builder(ManagerFunctions.this); 
       LayoutInflater inflater = getLayoutInflater(); 
       View convertView = (View) inflater.inflate(R.layout.user_op_list, null); 
       alertDialog.setView(convertView); 
       alertDialog.setTitle("מה ברצונך לעשות"); 
       lv = (ListView) convertView.findViewById(R.id.lv); 
       lv.setAdapter(dialogAdapter); 

       alertDialog.show();