Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AlertDialog中的ListView重复_Android_Android Listview_Android Alertdialog - Fatal编程技术网

Android AlertDialog中的ListView重复

Android AlertDialog中的ListView重复,android,android-listview,android-alertdialog,Android,Android Listview,Android Alertdialog,我的警报对话框包含一个列表视图。当警报对话框被取消,并且它返回时,列表视图将显示两次。我不知道为什么会这样。这是我的密码: protected Dialog onCreateDialog(int id) { AlertDialog.Builder builder = new AlertDialog.Builder(LegendTest.this); final LayoutInflater inflater = (LayoutInflater) Legend`en

我的
警报对话框
包含一个
列表视图
。当
警报对话框
被取消,并且它返回时,
列表视图
将显示两次。我不知道为什么会这样。这是我的密码:

protected Dialog onCreateDialog(int id) {
        AlertDialog.Builder builder = new AlertDialog.Builder(LegendTest.this);
        final LayoutInflater inflater = (LayoutInflater) Legend`enter code here`Test.this
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.selectfeaturetype, null);
        ListView listView =  (ListView) view.findViewById(R.id.listView1);
        Dialog dialog;

        switch (id) {
        case LEGEND_DIALOG:

            builder.setTitle("Set legend");
            builder.setView(view);


            listView.setAdapter(new BaseAdapter() {

                @Override
                public View getView(int position, View convertView,
                        ViewGroup parent) {

                    if(convertView == null)
                    {
                        convertView = inflater.inflate(R.layout.itemwithimage, null);
                    }
                    MyLegend legendItem = data.get(position);
                    if(legendItem != null)
                    {
                        ImageView img = (ImageView) convertView.findViewById(R.id.listimageView);
                        img.setImageBitmap(legendItem.legendImage);
                        TextView txt = (TextView) convertView.findViewById(R.id.listtextView);
                        txt.setText(legendItem.legendname);
                    }

                    return convertView;
                }

                @Override
                public long getItemId(int position) {

                    return position;
                }

                @Override
                public Object getItem(int position) {
                    return data.get(position);
                }

                @Override
                public int getCount() {

                    if (data == null)
                        return 0;

                    return data.size();
                }
            });

            dialog = builder.create();
            break;

        default:

            dialog = null;
            break;
        }
        return dialog.

尝试以下代码

package at.bartinger.list;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class PracticeClas extends Activity {

    ArrayList<String> data = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        data.add("Hello");
        data.add("Hello One");
        data.add("Hello Two");
        data.add("Hello Three");
        data.add("Hello Four");
        data.add("Hello Five");
        data.add("Hello Six");

        showDialog(0);
    }

    protected Dialog onCreateDialog(int id) {           
        final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.main, null);
        ListView listView = (ListView) view.findViewById(R.id.LsOne);
        Dialog dialog = null;

        dialog = new Dialog(PracticeClas.this);
        dialog.setContentView(view);
        dialog.setTitle("Material & Labor:");

        // dialog.create();
        switch (id) {
        case 0:
            listView.setAdapter(new BaseAdapter() {
                @Override
                public View getView(int position, View convertView,
                        ViewGroup parent) {

                    if (convertView == null) {
                        convertView = inflater.inflate(
                                R.layout.list_item_section, null);
                    }

                    TextView txt = (TextView) convertView
                            .findViewById(R.id.list_item_section_text);
                    txt.setText(data.get(position));
                    return convertView;
                }

                @Override
                public long getItemId(int position) {

                    return position;
                }

                @Override
                public Object getItem(int position) {
                    return data.get(position);
                }

                @Override
                public int getCount() {

                    if (data == null)
                        return 0;

                    return data.size();
                }
            });

            dialog.show();
            break;

        default:
            dialog = null;
            break;
        }
        return dialog;
    }

}
package at.bartinger.list;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.app.Dialog;
导入android.content.Context;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
公共课堂实践活动{
ArrayList数据=新的ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
数据。添加(“你好”);
data.add(“Hello One”);
data.add(“Hello Two”);
data.add(“Hello Three”);
data.add(“Hello Four”);
添加(“Hello Five”);
data.add(“Hello Six”);
显示对话框(0);
}
受保护的对话框onCreateDialog(int id){
最终LayoutFlater充气器=(LayoutFlater)getSystemService(Context.LAYOUT\u充气器\u服务);
视图=充气机充气(R.layout.main,空);
ListView=(ListView)view.findViewById(R.id.LsOne);
Dialog=null;
dialog=新建对话框(PracticeClas.this);
setContentView(视图);
对话框.setTitle(“材料和劳动力:”);
//dialog.create();
开关(id){
案例0:
setAdapter(新的BaseAdapter(){
@凌驾
公共视图getView(int位置,视图转换视图,
视图组(父级){
if(convertView==null){
convertView=充气机。充气(
R.layout.list\u item\u section,空);
}
TextView txt=(TextView)convertView
.findViewById(R.id.list\u item\u section\u text);
txt.setText(data.get(position));
返回视图;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共对象getItem(int位置){
返回数据。获取(位置);
}
@凌驾
public int getCount(){
如果(数据==null)
返回0;
返回data.size();
}
});
dialog.show();
打破
违约:
dialog=null;
打破
}
返回对话框;
}
}

尝试以下代码

package at.bartinger.list;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class PracticeClas extends Activity {

    ArrayList<String> data = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        data.add("Hello");
        data.add("Hello One");
        data.add("Hello Two");
        data.add("Hello Three");
        data.add("Hello Four");
        data.add("Hello Five");
        data.add("Hello Six");

        showDialog(0);
    }

    protected Dialog onCreateDialog(int id) {           
        final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.main, null);
        ListView listView = (ListView) view.findViewById(R.id.LsOne);
        Dialog dialog = null;

        dialog = new Dialog(PracticeClas.this);
        dialog.setContentView(view);
        dialog.setTitle("Material & Labor:");

        // dialog.create();
        switch (id) {
        case 0:
            listView.setAdapter(new BaseAdapter() {
                @Override
                public View getView(int position, View convertView,
                        ViewGroup parent) {

                    if (convertView == null) {
                        convertView = inflater.inflate(
                                R.layout.list_item_section, null);
                    }

                    TextView txt = (TextView) convertView
                            .findViewById(R.id.list_item_section_text);
                    txt.setText(data.get(position));
                    return convertView;
                }

                @Override
                public long getItemId(int position) {

                    return position;
                }

                @Override
                public Object getItem(int position) {
                    return data.get(position);
                }

                @Override
                public int getCount() {

                    if (data == null)
                        return 0;

                    return data.size();
                }
            });

            dialog.show();
            break;

        default:
            dialog = null;
            break;
        }
        return dialog;
    }

}
package at.bartinger.list;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.app.Dialog;
导入android.content.Context;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
公共课堂实践活动{
ArrayList数据=新的ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
数据。添加(“你好”);
data.add(“Hello One”);
data.add(“Hello Two”);
data.add(“Hello Three”);
data.add(“Hello Four”);
添加(“Hello Five”);
data.add(“Hello Six”);
显示对话框(0);
}
受保护的对话框onCreateDialog(int id){
最终LayoutFlater充气器=(LayoutFlater)getSystemService(Context.LAYOUT\u充气器\u服务);
视图=充气机充气(R.layout.main,空);
ListView=(ListView)view.findViewById(R.id.LsOne);
Dialog=null;
dialog=新建对话框(PracticeClas.this);
setContentView(视图);
对话框.setTitle(“材料和劳动力:”);
//dialog.create();
开关(id){
案例0:
setAdapter(新的BaseAdapter(){
@凌驾
公共视图getView(int位置,视图转换视图,
视图组(父级){
if(convertView==null){
convertView=充气机。充气(
R.layout.list\u item\u section,空);
}
TextView txt=(TextView)convertView
.findViewById(R.id.list\u item\u section\u text);
txt.setText(data.get(position));
返回视图;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共对象getItem(int位置){
返回数据。获取(位置);
}
@凌驾
public int getCount(){
如果(数据==null)
返回0;
返回data.size();
}
});
dialog.show();
打破
违约:
dialog=null;
打破
}
返回对话框;
}
}

两次显示
的准确程度如何
?两次显示
的准确程度如何
?我是个白痴,我发送到适配器的数组有两次相同的数据!无论如何谢谢你!我是个白痴,我发送到适配器的数组有两次相同的数据!无论如何谢谢你!