2010-03-06 5 views
17

위젯 클릭시 대화 상자를 열려고합니다. android:theme="@android:style/Theme.Dialog"으로 클릭시 시작된 활동을 스키닝하는 문제를 해결했습니다. 불행히도 나는 같은 대화 상자를 볼 수 없다.Android 액티비티를 대화 상자처럼 보이게하십시오.

대신 Dialog from widget

, 나는 (물론, 버튼 제외)이 결과에 도달하고 싶습니다 :

Desired dialog from widget

(위젯 대화

는 결과입니다 당신은 화면을 밀고 유지 볼 수 있습니다)

당신이 볼 수 있듯이 몇 가지 차이가 ​​있습니다 : 색상 목록 항목, 텍스트의 색상 및 목록 항목 구분 기호가 포함됩니다. 표준 대화 상자와 동일한 모양을 얻기 위해 사전 정의 된 테마/스타일이 있습니까? 그렇지 않은 경우 그 결과에 도달하기 위해 따라야 할 단계는 무엇입니까?

나는 FoxyRing에서 제공하는 위젯이 갖고 싶은 행동이 있다는 것을 알았습니다. 스타일은 아이콘과와의 ListView와 일반 Theme.Light.NoTitleBar처럼 보이는 thisDialog.dismiss();

 Context mContext = this; 
     Dialog dialog = new Dialog(mContext); 

     dialog.setContentView(R.layout.data_dialog); 
     dialog.setTitle("Your title"); 

     AlertDialog.Builder builder; 
     AlertDialog alertDialog; 

     LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE); 
     View layout = inflater.inflate(R.layout.data_dialog, 
       (ViewGroup) findViewById(R.id.AbsoluteLayout01)); 

     builder = new AlertDialog.Builder(mContext); 
     builder.setView(layout); 
     alertDialog = builder.create(); 
     alertDialog.show(); 

     final EditText txtUsername = (EditText) layout.findViewById(R.id.txtUsername); 

     final AlertDialog thisDialog = alertDialog; 

     Button btnSave = (Button) layout.findViewById(R.id.btnSave); 
     btnSave.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       String strtxtUsername = txtUsername.getText().toString(); 

       //do something... 

      } 
     });     

이 대화 상자를 닫습니다 전화 :

답변

22

이유는 투명한 배경 레이아웃

와 "전통"의 주요 활동을 사용하고 그것에서 표준 대화 상자를 호출하지?

... 내가 너를 올바르게 이해했다면 아주 쉽게 트릭을 만들 수 있지 않을까?

+0

예 ... 그래서 ... 내가하려고 그것은 작동 – Matroska

+5

을 할 것 같아요. android : theme = "@ android : style/Theme.Translucent.NoTitleBar"로 액티비티를 설정 한 다음 간단한 코드를 사용하여 대화 대화 상자를 만들어 대화 취소/클릭에 대한 작업을 마무리합니다. – Matroska

+0

당신이 원했던 방식으로 효과가 있다는 말을 듣고 기쁩니다. 건배, 반장님 – Hubert

3

동적 같은 대화 상자를 만들 수 있습니다 제목 - 텍스트.

희망 하시겠습니까?

+0

문제는 위젯을 누를 때이를 호출하는 방법입니다. 그것은 활동 안에 있어야하고 ... 활동은 항상 뭔가를 올바르게 보여 주어야합니까? – Matroska

+0

오, 미안, 내가 너를 오해했다. 는 '안드로이드에 활동의 테마를 설정해보십시오 : 테마 = "@ 안드로이드를 : 스타일/Theme.Translucent.NoTitleBar를"' – Nick

관련 문제