フラグメントアクティビティにViewpagerがあり、テキストの編集と送信ボタンが付いたボタンフレームがあります。フラグメントレイアウトでは、リストビューがあり、フラグメントでそれにアダプターを接続しています。現在、フラグメント内の親から送信ボタンを実装しています。クリックすると、アダプターを介して編集テキスト(再び親から)のテキストをリスト(フラグメント内)に追加しようとしています。ただし、ここでの問題は、テキストを入力して[送信]をクリックすると、ページャーの現在のビューではなく次のビューにテキストが追加され、最後のアイテムに移動すると、同じビューに追加されることがあります(これは予想されます)。次のアイテムの順序ではないランダムな場合もあります。フラグメントアクティビティのレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/detailLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/form" >
</android.support.v4.view.ViewPager>
<RelativeLayout
android:id="@+id/form"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:padding="2dp" >
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/btnSend"
android:drawableRight="@drawable/edit_keyboard"
android:inputType="textMultiLine"
android:maxLines="3" />
<ImageButton
android:id="@+id/btnSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/send" />
</RelativeLayout>
</RelativeLayout>
フラグメントレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
android:divider="@android:color/transparent"
android:listSelector="@android:color/transparent"
android:scrollbars="none" />
</RelativeLayout>
sendImageButtonを実装する方法は次のとおりです。
ImageButton sendBtn = (ImageButton) getActivity().findViewById(R.id.btnSend);
sendBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String msg = msgBox.getText().toString();
if (msg.length() > 0) {
long date = new Date().getTime();
// TODO Auto-generated method stub
commentAdapter.add(new OneComment(false, msg, "Me",
String.valueOf(date), "0"));
msgBox.setText("");
} else
Toast.makeText(getActivity(), "type in some text..", Toast.LENGTH_SHORT).show();
}
});