응용 프로그램에서 데이터베이스 쿼리를 기반으로 목록보기를로드했습니다. 각 목록보기 항목에는 텍스트보기와 몇 개의 단추가 있습니다. 그래서 사용자 지정 어댑터를 만들었습니다. 내 문제는 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();
}
}
나를 용서는하지만 조각 관리자에 액세스 할 이유는 좀 완전히, 당신이 무엇을 의미하지 않았다 ? "AlertDialog"의 인스턴스를 원한다면 컨텍스트 만 필요합니다. 어댑터의 생성자에서 전달할 수 있습니다. –
내 용서를 용서하십시오. 대화 상자를 표시하는 내 응용 프로그램의 다른 영역에서 코드를 처리하고있었습니다. 그러나 활동에서 직접 호출됩니다. 무슨 뜻인지 예를 보여줄 수 있습니까? – TWeeKeD
np :), 뭔가를 추가했습니다. 확인해보십시오. 도움이 되었기를 바랍니다. –