0

私はリスナーListViewと一緒にいます:onItemonClick

    @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {      

    TextView rowName = (TextView)arg1.findViewById(R.id.list_friends_friends_tab_name);
    ImageView rowProfilePicture = (ImageView) arg1.findViewById(R.id.list_profile_picture);
    CharSequence userName = rowName.getText();
    Drawable userProfilePicture = rowProfilePicture.getDrawable();

    AlertDialog.Builder menuBuilder = new AlertDialog.Builder(this);        
    View menuView = getLayoutInflater().inflate(R.layout.menu_friend, (ViewGroup) getCurrentFocus());
    menuBuilder.setView(menuView);
    menuBuilder.setCancelable(true);                
    TextView name = (TextView) menuView.findViewById(R.id.menu_user_name);
    ImageView profilePicture = (ImageView) menuView.findViewById(R.id.menu_profile_picture);            
    name.setText(userName);
    profilePicture.setImageDrawable(userProfilePicture);        
    AlertDialog menu = menuBuilder.create();
    menu.setCanceledOnTouchOutside(true);
    menu.show();        
}

ユーザーがアイテムをクリックするAlertDialogと、カスタムレイアウトの(メニュー)が表示され、クリックされたアイテムのビューから詳細を取得して、メニューレイアウトで変更することになっています。私は次のようになっています:

java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView

これを解決する方法について何か提案はありますか?

4

1 に答える 1

0

私はそれがこの行のために起こると思います:

View menuView = getLayoutInflater().inflate(R.layout.menu_friend, (ViewGroup) getCurrentFocus());

膨張したビューをダイアログのレイアウトとして設定するため、膨張したときに追加する必要はありません。レイアウトファイルを膨らませて、親を渡さないようにしてくださいViewGroup

View menuView = getLayoutInflater().inflate(R.layout.menu_friend, null);
于 2012-06-19T15:27:11.730 に答える