これが私の最初の大きなAndroidアプリだと言うことから始めたいと思います...
私はサードパーティのライブラリSlidingMenuを使用していますが、1つを除いてすべてがうまく機能しています。ユーザーが「地下室」メニューのリスト項目をタップすると、そのListFragmentが破棄されます。ListFragmentのすべての構築/分解メソッドにログを設定して、アクティビティをログに記録します。これは、タッチイベントがいつ発生したかを示すために編集されたログの画像です。
私のListFragmentクラスは次のように設定されています。
public class BasementFragment extends ListFragment implements PictureCallback {
BasementAdapter mAdapter;
RelativeLayout mHeader;
ArrayList<String> titles;
ImageView mImageButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.d("BASEMENTFRAGMENT", "onCreateView");
ListView view = (ListView) inflater.inflate(R.layout.basement, null);
mHeader = (RelativeLayout) inflater.inflate(R.layout.basement_header, null);
view.addHeaderView(mHeader);
mImageButton = (ImageView) mHeader.findViewById(R.id.image_button);
mImageButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
pickImage();
}
});
ParseFile imageFile = (ParseFile) ParseUser.getCurrentUser().get(NJUser.IMAGE_KEY);
if (imageFile != null) {
imageFile.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
InputStream is = new ByteArrayInputStream(data);
Bitmap bmp = BitmapFactory.decodeStream(is);
mImageButton.setImageBitmap(bmp);
}
});
}
return view;
}
// touch logic and other stuff...
}