2016-07-25 2 views
1

응용 프로그램에서 데이터베이스 쿼리를 기반으로 목록보기를로드했습니다. 각 목록보기 항목에는 텍스트보기와 몇 개의 단추가 있습니다. 그래서 사용자 지정 어댑터를 만들었습니다. 내 문제는 listview의 버튼이 클릭되었을 때 대화 상자가 나타나도록하려하지만 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); 

        } 
       }); 




      } 

     } 

리스트 뷰 채워 활성에있어서의 코드이다.

서비스. 자바

// 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

좋아, 나는 당신이 정말 간단 사촌,이 작업을 수행하는 방법을 실현하지 않았다 피곤, 내가 모르는 뭔가가 아니에요이어야 경우 내가 '그냥 추측 나 스스로 피곤하지 않았다. 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, 내가 피곤함에 불과하다고 말한 것처럼, 나는 너 자신에게 그것을 잘 알고 있었다. –

관련 문제