Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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 单击listview项目按钮后显示对话框_Android_Listview_Android Fragments_Android Alertdialog - Fatal编程技术网

Android 单击listview项目按钮后显示对话框

Android 单击listview项目按钮后显示对话框,android,listview,android-fragments,android-alertdialog,Android,Listview,Android Fragments,Android Alertdialog,我有一个应用程序根据数据库查询加载listview。在每个listview项中都有一个文本视图和几个按钮。因此,我创建了一个自定义适配器。我的问题是,当listview中的按钮单击时,我试图使对话框出现,但我不知道如何从listview适配器调用片段管理器 dancedapter.java @Override public View getView(int position, View convertView, ViewGroup parent) { // Get the

我有一个应用程序根据数据库查询加载listview。在每个listview项中都有一个文本视图和几个按钮。因此,我创建了一个自定义适配器。我的问题是,当listview中的按钮单击时,我试图使对话框出现,但我不知道如何从listview适配器调用片段管理器

dancedapter.java

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // Get the data item for this position
        final OneDancer oneDancer = getItem(position);
        // Check if an existing view is being reused, otherwise inflate the view
        if (convertView == null) {
                //Sign-In Activity
            if(type==1) {


            }else if (type==2)
            {

                Log.v("DancerAdapter","item_dj_dancer Loaded");

            }
            //VIP/Dances Adapter
            else if(type==3) {

                convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_services, parent, false);

                final Button button4 = (Button)convertView.findViewById(R.id.button4);

                final TextView counterTextView = (TextView)convertView.findViewById(R.id.textView10);

                final Button button6 = (Button)convertView.findViewById(R.id.button6);



                button4.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        DialogFragment newFragment = new SignInActivity.ConfirmDancerDialog();
                        newFragment.show(new getFragmentManager(), "Dancer Confirmed");

                        button4.setVisibility(View.INVISIBLE);
                        button6.setVisibility(View.VISIBLE);
                        counterTextView.setVisibility(View.VISIBLE);

                    }
                });




            }

        }
下面是填充listview的活动中的方法的代码

服务。爪哇

// Parsing of dancers

public void parseDancerList(String response) {

Log.v("SignInActivity","parseDancerList");
XMLParser parser = new XMLParser();

Document doc = parser.getDomElement(response); // getting DOM element

NodeList nl = doc.getElementsByTagName("DANCERS");

DancerAdapter adapter = new DancerAdapter(this,oneDancerArrayList,3);

Log.v("response ", "Dancer Count " + nl.getLength());
// looping through all item nodes <item>
for (int i = 0; i < nl.getLength(); i++) {
    // creating new HashMap

    Element e = (Element) nl.item(i);
    Log.v("response ", "Dancers  " + parser.getValue(e, "NAME"));

    OneDancer newDancer = new OneDancer(parser.getValue(e,"POSITION"),
            parser.getValue(e,"NAME"),
            parser.getValue(e,"AVAILABLE"),
            null,
            null,
            null,
            null,
            null,
            null);

    adapter.addAll(newDancer);
    listView.setAdapter(adapter);
    adapter.notifyDataSetChanged();




}
//舞者解析
公共列表(字符串响应){
Log.v(“重要性”、“分析列表”);
XMLParser=新的XMLParser();
Document doc=parser.getDomeElement(响应);//获取DOM元素
NodeList nl=doc.getElementsByTagName(“舞者”);
DancerAdapter=新的DancerAdapter(这是oneDancerArrayList,3);
Log.v(“响应”,“舞者计数”+nl.getLength());
//循环通过所有项目节点
对于(int i=0;i

}

好吧,我想只是你累了,你没有意识到怎么做,因为这真的很简单,至少如果我没有错过什么,我自己也不累xd。代码如下:

在活动中:

DancerAdapter adapter = new DancerAdapter(this,oneDancerArrayList,3, getSupportFragmentManager());
在您的适配器中:

private static FragmentManager fragmentManager;

public DancerAdapter(...,FragmentManager fragmentManager) {
    ...
    this.fragmentManager = fragmentManager;//now you have a reference to it
}

好吧,我想只是你累了,你没有意识到怎么做,因为这真的很简单,至少如果我没有错过什么,我自己也不累xd。代码如下:

在活动中:

DancerAdapter adapter = new DancerAdapter(this,oneDancerArrayList,3, getSupportFragmentManager());
在您的适配器中:

private static FragmentManager fragmentManager;

public DancerAdapter(...,FragmentManager fragmentManager) {
    ...
    this.fragmentManager = fragmentManager;//now you have a reference to it
}

对不起,我还没完全明白你的意思,为什么你想访问碎片管理器?若你们想要一个“AlertDialog”的实例,你们只需要一个上下文,你们可以在你们的适配器的构造函数中传递它。请原谅我的疏忽。我正在处理应用程序中显示对话框的另一个区域的代码。但是,它直接从活动中调用。你能给我举个例子说明你的意思吗?np:),我已经添加了一些东西,请查看,我希望它对我有帮助,但我还没有完全理解你的意思,你为什么要访问片段管理器?若你们想要一个“AlertDialog”的实例,你们只需要一个上下文,你们可以在你们的适配器的构造函数中传递它。请原谅我的疏忽。我正在处理应用程序中显示对话框的另一个区域的代码。但是,它直接从活动中调用。你能给我举个例子来说明你的意思吗?np:),我添加了一些东西,看看吧,我希望它能帮上忙。这很简单。非常感谢。嗯,正如我说的,这只是疲劳的问题,我相信你自己也知道:)这很简单。非常感谢。yw,正如我所说,这只是疲劳的问题,我相信你自己也知道:)