내 앱에 사용자 정의 대화 상자가 있는데 원하는 동작을 달성하는 데 문제가 있습니다. 내 대화 상자에는 4 개의 버튼이 있습니다. (뒤로, 유효, 수정 및 복원). 사용자가 수정 또는 유효 클릭하면 다른 활동을 호출하고 싶습니다. 그래서 의도를 사용하고 있지만 충돌이 있습니다.사용자 정의 대화 상자 관련 문제
에러 로그 :
05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : 05-19 java.lang.NullPointerException이 13 : 29 : 21.495 : ERROR/DEBUGTAG (974).
이
에서 android.content.ComponentName (ComponentName.java:75) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974). android.content.Intent (인 텐트. java : 2551) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : 05-19 13 : 29 : 21.495 : 오류/디버그 (974) : 에서 android.view.View.performClick (View.java : 2,364) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) android.view.View.onTouchEvent (View.java:4179 AT) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : android.widget.TextView.onTouchEvent (TextView.java:6540) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : android.view.View.dispatchTouchEvent (View. java : 3709) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) :,android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:884) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:884)에서 (974) : 에서 android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:884) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) 05/13 13 : 29 : 21.495 : ERROR/DEBUGTAG : 에서 android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:884) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : 에서 android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:884)) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : 012에 3,516,android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:884) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974)에서 com.android.internal.policy.impl.PhoneWindow $ DecorView.superDispatchTouchEvent (PhoneWindow.java:1659) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1107)에서 05- 19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : 에서 android.app.Dialog.dispatchTouchEvent (Dialog.java:643) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : at com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchTouchEvent (PhoneWindow.java:1643) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) android.view.ViewRoot.handleMessage (ViewRoot.java:1691)에서 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : at android.os.Handler.dispatchMessage (Handler.java:99) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : android.os.Looper.loop (Looper.java : 123) 05-19 13:29:21.495 : ERROR/DEBUGTAG (974) android.app.ActivityThread.main (ActivityThread.java:4363)에서 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974)에있는 java.lang . reflection.Method.invokeNative (네이티브 메서드) 05-19 13 : 29 : 21.495 : 오류/디버그 (974) : 에서 java.lang.reflect.Method.invoke (Method.java:521) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974)에서 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:860) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : 에서 com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618) 05-19 13 : 29 : 21.495 : ERROR/DEBUGTAG (974) : dalvik.system.NativeStart.main (기본 방법)
내 사용자 정의 대화 상자에서 :
package com.android.booztermobile.services;
import com.android.booztermobile.R;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
public class MailDialog extends Dialog {
private Button btnValid;
private Button btnBack;
private Button btnRestore;
private Button btnModify;
private Context context;
public MailDialog(Context cont) {
super(cont);
context = cont;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("TestApp", "Dialog created");
setContentView(R.layout.dialog_classement);
btnValid = (Button) findViewById(R.id.btnValidClassement);
btnBack = (Button) findViewById(R.id.btnBackClassement);
btnRestore = (Button) findViewById(R.id.btnRestoreClassement);
btnModify = (Button) findViewById(R.id.btnModifyClassement);
}
}
및 활동 (잘라 내기 때문에 너무) 길이 :
//create dialog
public void getMailInformations(View v, Context context){
currentMail = (MailHeader) v.getTag();
dial = new MailDialog(context);
dial.setTitle("Classement");
dial.show();
btnValidClassement = (Button) dial.findViewById(R.id.btnValidClassement);
btnValidClassement.setOnClickListener(this);
}
/** 온 클릭 : */
public void onClick(View view) {
//THIS WORKS (Activity Button)
if (view == lblPreviousMails) {
positionList -= 20;
// create Intent
Intent defineIntentDisplayPreviousMails = new Intent(HeaderMailDisplayActivity.this, HeaderMailDisplayActivity.class);
//Create bundle to pass informations to the other activity
Bundle objetbundle = new Bundle();
objetbundle.putString("positionList", String.valueOf(positionList));
objetbundle.putStringArrayList("currentMails", seqnumList);
objetbundle.putString("uidh", uidh);
defineIntentDisplayPreviousMails.putExtras(objetbundle);
// call headermailDisplayActivity
HeaderMailDisplayActivity.this.startActivity(defineIntentDisplayPreviousMails);
}
//THIS DOESN'T WORKS (Dialog Button)
if(view == btnValidClassement){
try{
ClassementHandlerCall classement = new ClassementHandlerCall();
boolean mailClassify = classement.classifyMail(AuthentificationActivity.uidh,
String.valueOf(currentMail.getSeqnum()), null, null);
dial.dismiss();
if (mailClassify == true){
//create Intent
Intent defineIntentClassifyMails = new Intent(MailClassificationActivity.this, HeaderMailDisplayActivity.class);
// Object that allows to pass person's uidh and positionList onto HeaderMailDisplayActivity
Bundle objetbundle = new Bundle();
objetbundle.putString("uidh",uidh);
objetbundle.putString("positionList", String.valueOf(positionList));
defineIntentClassifyMails.putExtras(objetbundle);
// call HeaderMailDisplayActivity
MailClassificationActivity.this.startActivity(defineIntentClassifyMails);
}
}catch(Exception e){
// TODO Auto-generated catch block
Log.e("DEBUGTAG","Error occured", e);
e.printStackTrace();
}
}
}
코드를 정하십시오. 감사합니다. – hara
예, 시도했지만 [코드] [/ 코드]를 넣었습니다. 작동하지 않는 것 같습니다. – Nanis
편집기 사용법을 배우려면이 부분을 읽으십시오. http : //stackoverflow.com/editing-help – Cristian