无法在AlertDialog android中显示listview

时间:2014-05-08 16:01:57

标签: java android xml listview layout

我想在AlertDialog中显示对象的ArrayList,但我的列表视图不显示。这是我的代码。

public class PrzystanekDialog extends DialogFragment {

    private ListView trasaPrzejazdu;
    private ArrayList<Linia> trasaPrzejazduList;

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the Builder class for convenient dialog construction
        LayoutInflater inflater = getActivity().getLayoutInflater();

        final View rootView = inflater.inflate(R.layout.dialog_layout, null);

        //ustawienie lisview z wygenerowaną linia
        trasaPrzejazduList = getArguments().getParcelableArrayList("linia");
        trasaPrzejazdu = (ListView) rootView.findViewById(R.id.trasaListView);
        final ArrayAdapter<Linia> adapter = new ArrayAdapter<Linia>(getActivity(),R.layout.listbox_dialog_element, trasaPrzejazduList);
        trasaPrzejazdu.setAdapter(adapter);

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        final ViewPager mViewPager;
        mViewPager = (ViewPager) getActivity().findViewById(R.id.pager);

        builder.setView(inflater.inflate(R.layout.dialog_layout, null));
        //getActivity().setContentView(inflater.inflate(R.layout.dialog_layout, null));

        builder.setMessage(R.string.choose)
                .setPositiveButton(R.string.start_trip, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        mViewPager.setCurrentItem(1);
                    }
                })
                .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        Toast.makeText(getActivity().getApplicationContext(), "Anulowano podróż.", Toast.LENGTH_LONG).show();
                    }
                });
        return builder.create();
    }
}

这是我的ArrayAdapter

public class DialogListAdapter extends BaseAdapter {

private List<Linia> listData;

private LayoutInflater layoutInflater;

public DialogListAdapter(Context context, List<Linia> listData) {
    this.listData = listData;
    layoutInflater = LayoutInflater.from(context);
}

@Override
public int getCount() {
    return listData.size();
}

@Override
public Linia getItem(int position) {
    return listData.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = layoutInflater.inflate(R.layout.listbox_dialog_element, null);
        holder = new ViewHolder();
        holder.start = (TextView) convertView.findViewById(R.id.przystanekStartowy);
        holder.end = (TextView) convertView.findViewById(R.id.przystanekDocelowy);
        holder.vehicleImage = (ImageView) convertView.findViewById(R.id.line_image);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    //listData.get(position).getHeadline()
    if(listData.get(position).getTypLini().toString() == "bus")
        holder.vehicleImage.setImageResource(R.drawable.autobus_ico);
    else
        holder.vehicleImage.setImageResource(R.drawable.tram_ico);
    holder.start.setText(listData.get(position).getStopPrzystanki().get(0).getNazwa_przystanku());
    holder.end.setText(listData.get(position).getStopPrzystanki().get(listData.get(position).getStopPrzystanki().size()-1).getNazwa_przystanku());

    return convertView;
}

static class ViewHolder {
    ImageView vehicleImage;
    TextView start;
    TextView end;
}

}

这是我的xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/trasaListView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

我没有编译错误。非常感谢您的帮助。

编辑:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/line_image"
        android:layout_width="50dip"
        android:layout_height="50dip"
        android:src="@drawable/autobus_ico"
        android:layout_marginLeft="5dip"/>

    <TextView
        android:id="@+id/przystanekStartowy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:textStyle="bold"
        android:typeface="sans"
    android:layout_marginLeft="60dip"/>

    <TextView
        android:id="@+id/przystanekDocelowy"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dip"
        android:text=""
        android:textColor="#343434"
        android:textSize="12sp" 
        android:layout_marginLeft="60dip"/>

</LinearLayout>

0 个答案:

没有答案