2013-10-08 2 views
0

'사용자 지정 어댑터'의 코드에서 Listview 용 사용자 지정 어댑터가있는 활동 A가 있는데 두 번째 활동 (B 작업)을 표시하는 AlertDialog를 호출하려고합니다.).Android AlertDialog args 전달 방법

나는 완벽하게 활동을 보여줄 수 있지만 활동 A와 활동 B 사이에 args를 전달하는 방법을 알고 싶습니다.

는 CustomAdapter.java는 :

TextView title_ = (TextView) v.findViewById(R.id.title_B); // Activity B 
title_.setText("Example"); 

을하지만 작동하지 않았다 :

view_details.setClickable(true); 
view_details.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     LayoutInflater layoutInflater = LayoutInflater.from(context); 
     View promptView = layoutInflater.inflate(R.layout.activity_activity_B, null); 

     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); 
     alertDialogBuilder.setView(promptView); 
     AlertDialog alertD = alertDialogBuilder.create(); 
     alertD.show(); 

첫째, 나는 ') alertD.show ('는 아래에 다음 코드를 넣어 약 생각했다. 그런 다음 '번들'을 사용하여 활동간에 인수를 전달하는 방법에 대해 생각했습니다. 다시, 'alertD.show()'이후 :

Intent i = new Intent(context, activityB.class); 
i.putExtra("title", "this is the title")); 
// And get this way in ActivityB: 
// Bundle extras = getIntent().getExtras(); 
// String g = extras.getString("title"); 

또한 작동하지 않았습니다. 이 마지막 코드로 오류가 발생하지 않지만 정보도 표시되지 않습니다. "setText"를 사용하면 NullPointerException 오류가 발생합니다 (활동이 초기화되지 않아 오류를 가져옵니다).

감사합니다.

+0

질문에서 압축을 풉니 다 그런 This-

String title1 = this is the title; Intent i = new Intent(context, activityB.class); i.putExtra("title", title1); 

을 시도하고도 i.putExtra ("제목 "에 로그 캣 – Riskhan

+0

을 게시 표제")); 당신은 두 개의 닫는 괄호를 씁니다. 어쩌면 당신이 아무것도받지 못하는 이유 일 수도 있습니다. –

답변

0

해결.

AlertDialog의 요점은 그런 종류의 창을 갖는 것이 었습니다. 우리는이 유형의 창 (대화 상자)을 우리 테마로 설정할 수 있다는 것을 알았습니다. 따라서 모든 것이 더 쉽고 빠릅니다.

// styles.xml 
<style name="MyTheme" parent="android:style/Theme.Dialog"> 
     <item name="android:windowNoTitle">true</item> 
</style> 
<--------------> 
// Manifest.xml 
<activity 
    android:name="com.example.MyExample.activity_B" 
    android:label="@string/activity_B" 
    android:windowSoftInputMode="stateHidden" 
    android:theme="@style/MyTheme"> 
</activity> 

그리고 나는 내 사용자 지정 어댑터를 사용할 수 있습니다

Intent i = new Intent(getContext(), activity_B.class); 
i.putExtra("field", "value"); 
context.startActivity(i); 

감사합니다.

0

이것은이다 ", 분명하지 않다 당신의 새로운 활동 -

Intent intent = getIntent(); 
String title1 = intent.getExtras.getString("title");