2011-01-17 8 views
0

カスタムアラートダイアログにタイトルも(タイトル)アイコンも設定できません。 マイコード:カスタムアラートダイアログのタイトルと(タイトル)アイコンを設定する

public class AddingFavoriteDialog extends AlertDialog { 
private OnAddingFavoriteListener  onAddingFavoriteListener; 
private Context context; 
private GeocodingManager geocodingManager; 
private FavoritesActivity favoritesActivity; 

public AddingFavoriteDialog(Context context, OnAddingFavoriteListener onAddingFavoriteListener) { 
super(context, android.R.style.Theme_Dialog); 

this.context = context; 
this.onAddingFavoriteListener = onAddingFavoriteListener; 
this.geocodingManager = new GeocodingManager(context); 
this.favoritesActivity = (FavoritesActivity) context; 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 

setContentView(R.layout.adding_favorite_dialog2); 

setTitle("MYTITLE"); 

setIcon(R.drawable.star_gold); 
} 

私は間違っていますか?私はonCreate()とコンストラクタでsuper.setTitle("MYTITLE");を呼び出して設定しようとしました。

編集:でもsetButton(BUTTON_POSITIVE, context.getString(R.string.button_value_OK), new OnClickListener() {...}はうまくいかないようです。

+0

this.setTtitle( "");を使用してみてください。またはそれが動作しない場合Classname.steTitle( ""); – ingsaurabh

+0

どのようにダイアログをインスタンス化していますか? –

答えて

1

setContentViewの代わりにsetContentViewを使用してください。setContentViewは、AlertDialogのすべての部分を置き換えます(デフォルトのタイトルバーとアイコン(およびボタンなど)も含む)。代わりに、setViewは中央の部分(メッセージであればそれ)を置き換えます。

必要に応じてLayoutInflaterを使用してください。

+0

これは正しいと思われます。しかし、私が 'findViewById()'しようとすると、私のビューが認識されません。 –

+0

'LayoutInflater'を使ってレイアウトを膨張させると' View'オブジェクトが得られます。 AlertDialog自体ではなく、そのオブジェクトに対して 'findViewById()'を使用してください。それが動作すれば私たちに知らせてください。 – Felix

+0

私はかなり確信していますが、私は数時間前にこれを試しました。しかし、もはやダイアログはありません。 ;)Theresは、コンテンツ、タイトル、またはその他何もないプレーンなダイアログウィンドウです。 –

0

AlertDialogの代わりにダイアログボックスを拡張すると、問題が解決されます。

関連する問題