2016-07-25 11 views
1

データベースクエリに基づいてアプリケーションにリストビューを読み込ませました。各リストビュー項目には、テキストビューといくつかのボタンがあります。だから私はカスタムアダプターを作成しました。私の問題は、リストビューのボタンがクリックされたときにダイアログを表示させようとしていることですが、フラグメントマネージャをlistviewアダプタから呼び出す方法はわかりません。リストビューアイテムボタンをクリックするとダイアログが表示されます

DanceAdapter.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); 

        } 
       }); 




      } 

     } 

ここでリストビューを移入活性のメソッドのコードです。

サービス。 Javaの

// 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(); 




} 

}

+0

あなたはフラグメントマネージャにアクセスしたい理由を、私を許し、私はちょっと完全にあなたが何を意味するか取得していません? "AlertDialog"のインスタンスが必要な場合は、コンテキストのみが必要です。アダプタのコンストラクタに渡すことができます。 –

+0

私の無知を許してください。私はダイアログを表示する私のアプリケーションの別の領域からのコードに対処していました。しかし、その活動から直接呼び出されます。あなたが意味するものの例を私に見せてもらえますか? – TWeeKeD

+0

np :)、私は何かを追加しました、それをチェックして、私はそれが助けてくれるといいですね。 –

答えて

0

さて、私はそれは私が何かが欠けていないよ、私は」少なくともあれば、あなたはそれは本当に簡単ですcuzのあなたは、これを行う方法を認識していなかったことに疲れているということだけだと思います私は疲れていませんxd。ここでのコードは次のとおりです。活動の

あなたDancerAdapterで
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 
} 
+0

それは簡単でした。ありがとうございました! – TWeeKeD

+0

yw、私はそれがちょうど疲れている問題だと言ったように、私はあなた自身がそれを知っていたと確信しています:) –

関連する問題