我在使用DialogFragment和ListView時遇到了問題。當我在onCreate中使用setStyle時,問題就出現了。使用setStyle時DialogFragment中的Android ListView錯誤
下面是代碼(更清晰瞭解這個問題,我已經在洋紅色列表textviews):
import android.app.DialogFragment;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MenuDialog extends DialogFragment {
public static MenuDialog create() {
MenuDialog frag = new MenuDialog();
return frag;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NO_TITLE, 0);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ListView v = new ListView(getActivity());
v.setAdapter(new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView view = null;
if (convertView == null) {
view = new TextView(getActivity());
view.setTextAppearance(getActivity(), android.R.style.TextAppearance_Large);
view.setPadding(15, 15, 15, 15);
view.setBackgroundColor(Color.MAGENTA);
}
else
view = (TextView) convertView;
switch (position) {
case 0: view.setText("Random"); break;
case 1: view.setText("Community favourites"); break;
case 2: view.setText("Change image"); break;
case 3: view.setText("Share"); break;
case 4: view.setText("Informations"); break;
}
return view;
}
@Override public long getItemId(int arg0) { return 0; }
@Override public Object getItem(int arg0) { return null; }
@Override public int getCount() { return 5; }
});
return v;
}
}
這裏是它提供的對話框的圖像:
現在,如果我只是評論setStyle(STYLE_NO_TITLE,0);在onCreate方法行,按預期工作的一切:
我在做什麼錯? 我無法使用簡單的AlertDialog,因爲我需要定製更多這些列表項。
編輯:You can download here a demo Android Eclipse project that demonstrates the problem
嗨,所羅門BRYS問題已經solved.Check編輯答案 – mukesh
測試後它,請通知其罰款或不? – mukesh