我正在尝试使用自定义布局填充片段内的 listView。但是当我启动应用程序时,没有加载 listview 的内容(这是使用数组适配器获得的)。这是我加载listView的代码:

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

view = inflater.inflate(R.layout.activity_start, container, false);

ProfilesDatabaseHelper dbHelper = ac.getDbManager();

ProfileManagerDAO dbDao = ac.getProfileManagerDAO();

//TODO mettere profilehandler dentroo profileapp.

ProfileHandler handler = new ProfileHandler(view.getContext());

Profile profile = handler.getCurrentProfile();

TextView label = (TextView) view.findViewById(R.id.labelvlm);

label.setText("TEST");

if(handler!=null){

label.setText("Ring Volume: " + profile.getRingVolume() + "Max: "

+ handler.getMaxVolume(AudioManager.STREAM_RING));

label.append("\tVoice Call Volume: " + profile.getCallVolume()

+ " Max: " + handler.getMaxVolume(AudioManager.STREAM_VOICE_CALL));

//manager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, 5, 0);

label.append("\tWIFI Status: " + handler.isWifiActive());

}

Ringtone tone = RingtoneManager.getRingtone(view.getContext(), Settings.System.DEFAULT_RINGTONE_URI);

if(tone!=null){

label.append("\n" + tone.getTitle(view.getContext()));

}

SeekBar bar = (SeekBar) view.findViewById(R.id.ringtonevolumeBar);

bar.setMax(handler.getMaxVolume(AudioManager.STREAM_RING));

bar.setProgress(profile.getRingVolume());

ArrayList profiles = ac.getProfileManagerDAO().getprofileNamesList();

if(profiles!=null){

Log.d(TAG, "List size: " + profiles.size());

ListView profileslist = (ListView) view.findViewById(R.id.profileslist);

adapter = new ProfilesArrayAdapter(view.getContext(), R.layout.list_item, profiles);

profileslist.setAdapter(adapter);

// List testing = new ArrayList();

// testing.add("Hey");

// testing.add("Hey Do");

// testing.add("Hey It");

// testing.add("Hey Please");

// ArrayAdapter moviesAdapter = new ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1, testing);

// profileslist.setAdapter(moviesAdapter);

//profileslist.setA

}

return view;

}

这是我的 CustomAdapter 的代码:

public class ProfilesArrayAdapter extends

ArrayAdapter> {

ArrayList> entries;

int resourceId;

Context context;

static class ProfileItemHandler {

TextView profileId;

TextView profileName;

}

public ProfilesArrayAdapter(Context context, int layoutResourceId, ArrayList> profiles) {

super(context, layoutResourceId);

this.context = context;

this.resourceId = layoutResourceId;

this.entries = profiles;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View row = convertView;

ProfileItemHandler handler = null;

if(convertView==null){

LayoutInflater inflater = ((Activity)context).getLayoutInflater();

row = inflater.inflate(R.layout.list_item, parent, false);

handler = new ProfileItemHandler();

handler.profileId = (TextView) row.findViewById(R.id.profileName);

handler.profileName = (TextView) row.findViewById(R.id.profileId);

row.setTag(handler);

} else {

handler = (ProfileItemHandler) row.getTag();

}

HashMap entry = this.getItem(position);

for(String cur_entry: entry.keySet()){

handler.profileId.setText(cur_entry);

handler.profileName.setText(entry.get(cur_entry));

}

return row;

}

}

这是列表项布局的 xml:

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

这里是主要布局:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_start"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".StartActivity" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/labelvlm"

android:text="@string/hello_world" />

android:id="@+id/ringtonevolumeBar"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_below="@+id/labelvlm"

android:layout_marginTop="122dp" />

android:id="@+id/profileslist"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_alignLeft="@+id/ringtonevolumeBar"

android:layout_below="@+id/ringtonevolumeBar"

android:layout_marginTop="68dp" >

我没有收到任何错误消息,但是当我启动应用程序时,listView 中没有显示任何项目,并且我的 Adapter 的方法 getView 永远不会被调用。任何想法?


贵阳美的电器[贵阳]
宅心仁厚的意思