すべては機能しますが、「正しい方法は何ですか?」という質問がありますか?リストの項目を選択すると、インデントやトーストを呼び出すことができますか?
私は、このフラグメントは、ListViewコントロールを呼び出し、それにアダプタを追加します。この断片に
package com.nielyouri.pluff.ui.fragments;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.nielyouri.pluff.R;
import com.nielyouri.pluff.adapters.CourseListAdapter;
import com.nielyouri.pluff.providers.WeekProvider;
public class DayFragment extends Fragment {
private static final String TAG = DayFragment.class.getSimpleName();
private ListView mListView = null;
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
WeekProvider provider = new WeekProvider();
View view = inflater.inflate(R.layout.course_list, null);
Bundle bundle = getArguments();
// Yay a day is given
if (bundle != null) {
int day = bundle.getInt("day");
Log.i(TAG, String.format("Day: %d", day));
CourseListAdapter adapter = new CourseListAdapter(getActivity(), provider.getDays().get(day));
ListView listView = (ListView) view.findViewById(R.id.list_view);
if (listView != null) {
listView.setAdapter(adapter);
}
}
return view;
}
}
を持っています。私は、リスト内の項目をクリックすると
package com.nielyouri.pluff.adapters;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.nielyouri.pluff.R;
import com.nielyouri.pluff.model.Day;
public class CourseListAdapter extends BaseAdapter {
private static final String TAG = CourseListAdapter.class.getSimpleName();
private Context mContext;
public Context getContext() {
return mContext;
}
private final Day mDay;
public Day getDay() {
return mDay;
}
public CourseListAdapter(final Activity context, Day day) {
mContext = context;
mDay = day;
}
@Override
public int getCount() {
return mDay.getCourses().size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(mContext).inflate(R.layout.course_items, parent, false);
viewHolder.course = (TextView) convertView.findViewById(R.id.course);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.course.setText(mDay.getCourses().get(position).getName());
return convertView;
}
private class ViewHolder {
TextView course;
}
}
、getItemId
方法は、IDを返します。
今、私の主な質問は:
私は私のリストビュー内の項目をクリックしたとき、私はトーストや意図すべきコード内の適切な場所?