2010-06-22 4 views
4

사용자가 상태 표시 줄의 알림을 클릭 할 때 강조 효과를 사용 중지하는 방법을 알고 싶습니다. 또한 사용자가 직접 상호 작용할 수 있도록 허용하고 싶습니다. RemoteView를 사용하여 버튼을 눌러 알림에 배치했습니다.상태 표시 줄에 대화 형 알림 구현 (Android)

HTC의 Sense는 위의 목표를 달성 한 통화가 진행되는 동안 진행중인 알림이 있으므로이 작업을 수행 할 수 있음을 알고 있습니다.

아이디어가 있다면 구체적으로 알려주십시오. 특히 RemoteView 내에 중첩 된보기에 대해 OnClickListener를 설정하는 방법은 무엇입니까?

답변

2

나는 이것을 시도하지 않았지만 위젯이 RemoteViews.setOnClickPendingIntent를 사용하는 것과 같은 방식으로 작동해야합니다. 행의 선택 강조 표시를 사용 중지하는 한 가지 방법은 클릭 인 텐트를 외부 레이아웃 요소에 추가 한 다음 아무 것도하지 않는 것입니다.

예를 들어 맞춤 레이아웃이 다음과 같이 보이는 경우

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/layout_root" 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
    <ImageView android:id="@+id/button" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:src="@drawable/button"/> 
    <TextView android:id="@+id/text" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:text="Some Text" /> 
</LinearLayout> 

의 layout_root에 BTW

RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.yourlayout); 
notification.contentView = contentView; 

PendingIntent peClick = PendingIntent.getBroadcast(this, 0, new Intent("com.BUTTON_CLICK"), 0); 
contentView.setOnClickPendingIntent(R.id.button, peClick); 
PendingIntent peNothing = PendingIntent.getBroadcast(this, 0, new Intent("com.DO_NOTHING"), 0); 
contentView.setOnClickPendingIntent(R.id.layout_root, peNothing); 

을 do_nothing 의도를 추가, HTC는 자신의 물건을 사용하는 일반 개발자는, 그래서 항상 좋은 아니에요 수없는 방법으로 안드로이드를 수정할 수있는 기능을 가지고 가능한 일의 예로

0

나는 아직도 비슷한 코드 작업을하고있다. 그러나 지금까지 내 견해로는 Android의 여러 버전이 상황을 다르게 처리한다는 것이다. 아이스크림 샌드위치에서 레이아웃의 개별 항목에 setOnClickPendingIntent를 사용합니다. 그러나 이전 버전의 Android에서는 알림의 contentIntent가 먼저 발생하고 버튼의 의도는 절대 발생하지 않습니다. 이 문제를 해결하는 방법이 있을지 모르지만 아직 찾지 못했습니다. 알림의 contentintent에 대한 무의미한 의도는 도움이되지 않는 것처럼 보입니다.

+0

fyi- 허니 콤이 나누기를 설정합니다. HoneyComb에서 작동합니다. – Falcon

관련 문제