gpt4 book ai didi

带有 ListView 和动态添加文本的 Android View 寻呼机

转载 作者:行者123 更新时间:2023-11-29 00:32:22 25 4
gpt4 key购买 nike

我在 Fragment Activity 中有一个 Viewpager,它有一个带有编辑文本和发送按钮的按钮框架。在 fragment 布局中,我有一个 Listview 并在 fragment 中附加一个适配器。现在我在 fragment 内实现来自父级的发送按钮,点击我试图通过适配器将编辑文本中的文本(再次从父级)添加到列表(在 fragment 中)。但这里的问题是,当我输入一些文本并单击“发送”时,它不会将文本添加到寻呼机中的当前 View ,而是添加到下一个,当我有时转到最后一个项目时,它会添加到同一 View (这是预期的)。有时它是随机的,而不是下一个项目的顺序。 fragment Activity 布局:

<?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>

fragment 布局:

<?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>

下面是实现发送 ImageButton 的方法:

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();
}
});

最佳答案

你可以访问当前 fragment (带有列表的那个)做这样的事情:

Fragment currentFragment = (Fragment) viewPager.getAdapter().instantiateItem(viewPager, viewPager.getCurrentItem()); //gets current fragment
//now you have to cast it to your fragment with list, let's say it's name is SukarnoListFragment

((SukarnoListFragment)currentFragment).messageList.add(...); // you have now access to public fields and methods that are inside your fragment

而且我认为,如果您在 Activity 中有按钮,那么您应该在 Activity 中实现此按钮的 onClick,而不是在 fragment 中。

关于带有 ListView 和动态添加文本的 Android View 寻呼机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14701429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com