Articles of android fragments

使用FragmentStatePagerAdapter时刷新片段视图

似乎之前讨论过刷新问题,但没有一个解决方案适合我。 我想要做的是:我正在使用FragmentStatePagerAdapter。 适配器的每个位置都包含一个片段,该片段具有象状外观的线性布局,每个单元格由CheckedTextView表示。 并且应该监听点击并且删除单元格上的先前选择并进行新选择的监听器。 什么工作:每个片段都正确加载所有数据/默认状态(片段加载到列表中时计算) 当我单击一个单元格时,保存的单元格列表中的所有状态都被正确获取,我可以在调试时更改代码中的状态更改。 同时我为CheckedTextView指定一个表示单元格的新状态。 这设置如下: CheckedTextView cellView = (CheckedTextView) GridRow.getChildAt(c); cellView.setSelected(false); cellView.setChecked(false); cellView.setTag(cellsChess.get(i).get(c)); 问题:即使正确存储和分配了值,也无法刷新视图,视图中单元格的值不会更新。 我试过的提示没有用: 1。调用adapter.notifyDataSetChanged:只有在我们被覆盖时才能使用FragmentStatePagerAdapter调用: @Override public int getItemPosition(Object object){ return POSITION_NONE; } 2.为DestroyItem添加Overriden方法,并将片段添加到getItem上的Map: 这是不合适的,因为我正在使用FragmentStatePagerAdapter,因此使用此pagerAdapter的整个目的将消失。 3.调用invalidate:这不适合这种情况,我需要实时刷新。 4. instantiateItem()中的setTag()方法:我不认为这种情况适合。 引用的线程: 在恢复活动时刷新FragmentStatePagerAdapter上的图像 ViewPager PagerAdapter未更新视图 动态更新ViewPager? notifyDataSetChanged无法更新ListView 我试图尽可能清楚地说明我的问题,如果有人需要更多澄清,请问。 紧急回复将受到高度赞赏, 干杯 ****更新***** 我使用的是ViewPagerIndicator,而不是默认的ViewPager。

Android – Viewpager和片段,方法不起作用

我有一个带有两个Fragments的ViewPager ,我在FragmentActivity onCreate中实例化。 private List fragments = new Vector(); fragments.add(Fragment.instantiate(this,Frag_1.class.getName())); fragments.add(Fragment.instantiate(this,Frag_2.class.getName())); this.vPagerAdapter = new Adapt(super.getSupportFragmentManager(),fragments); vPager = (ViewPager) super.findViewById(R.id.pager); vPager.setAdapter(vPagerAdapter); 我的第二个Fragment里面有一个方法,我调用它来更新我的ListView – refreshList() : public class Frag_2 extends Fragment { private ListView list; private ArrayList data; private boolean firstCreation=true; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setRetainInstance(false); } public void onAttach(Activity activity) { // TODO Auto-generated […]

在某些片段可见时启用显示方向更改,在其他片段时禁用

我在我的应用程序中使用片段。 大多数碎片应该只有一个方向 – 肖像。 所以我强迫持有人活动始终处于纵向模式。 但我的一个片段应该同时具有纵向和横向模式。 如何只为一个片段启用方向更改? 或者我需要将它作为一个单独的活动来处理方向而不依赖于其他片段?

Expandablelistview扩展simplecursoradapter以从sqlite填充

如何在片段内实现android SQLite,而不是将其扩展到除片段之外的任何其他内容,同时将这些条目放在可扩展listview的子代中。 这是我实施的: http : //wptrafficanalyzer.in/blog/implementing-horizo​​ntal-view-swiping-using-viewpager-and-fragmentpageradapter-in-android/ 我正在我的主要活动中实现视图寻呼机,因此我必须在其中做我必须做的事情。 我不知道如何使用SQLite与片段和自定义Expandablelist适配器请帮助我。 在这里,我基本上将用户名和年龄作为用户条目,我希望在expandablelistview的子项中显示。 因此,日期表的问题无法打开参加活动的活动,即活动2 更新:: SQLiteAdapter: public class SQLiteDBAdapter { private static final String TAG = “DBAdapter”; //used for logging database version changes // DataBase info: public static final String DATABASE_NAME = “entry”; public static final String DATABASE_TABLE2 = “entryTable”; public static final String DATABASE_TABLE1= “dateTable”; public static final […]

片段在后台

在我的应用程序中我的第一个Fragment是在BackStack中,并且在交易时该片段没有添加到backstack。 编辑。 我在第一次横切后多次使用相同的碎片,但是横切后跟第一个碎片被添加到带有addToBackStack(TAG); 但我从来没有添加第一个片段到backstack但仍然我不明白为什么我必须点击两次将应用程序发送到后台。 这是代码 FragmentManager fm = getSupportFragmentManager(); Bundle args = new Bundle(); args.putString(“url”, Constants.URL_BASE); feedFragment.setArguments(args); fm.beginTransaction().replace(R.id.content_frame, feedFragment).commit(); 现在,当我按下后退按钮时,它会移除片段,但应用程序不会转到后台。 当我第二次按下后退按钮时,它会进入后台。 replace()本身是否将片段添加到backstack? 如果是的话那我怎么能删除片段并让我的应用程序转到后台onBackPressed ? 如果它没有将片段添加到backstack那么为什么会发生这种情况呢? 我该如何让它正常工作? 谢谢! 编辑: 这是完整的活动代码。 public class MainActivity extends AppCompatActivity { private final String TAG = getClass().getName(); private DrawerLayout drawerLayout; private FeedFragment feedFragment = new FeedFragment(); private ListView listView; private LinearLayout […]

白色背景时animation片段在android中

我试图在Android中的片段中滑动。 过渡和滑动按预期工作,它会在我想要的位置滑动。 但是,在视图到位之前,有一个白色背景,视图将位于其最终位置。 它就像为它分配了空间。 但是我想让它滑过我当前的视图,所以没有显示白色背景。 有什么想法吗? 我在res / anim中使用带有xml文件的view animator。 这是一个小代码: android.support.v4.app.FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); fragmentTransaction.setCustomAnimations(R.anim.slide_in_down, 0); fragmentTransaction.show(fragmentToSlideIn); fragmentTransaction.commit(); 那么,为什么视图的最终位置在到达该位置之前会有白色背景?

如何在android Fragement中设置自定义ListView?

我一直在为Android平板电脑做应用程序。 在这里,我需要显示两个ListView。 一个用于简单列表视图,一个用于自定义列表视图。 一旦我点击简单的列表视图行,那么必须在另一个自定义列表视图中显示该详细信息。 为此,我被拍成片段以在单个屏幕中显示两个列表视图。 对于Custom ListView,我使用自定义适配器来绑定自定义数据。 但是当我点击简单的列表视图行时,应用程序显示没有响应错误。 我的代码就像这样。 因为我的片段包含这样的代码 public class listDetails extends Fragment{ private int nAndroids; public static ArrayList<HashMap> menuItems = new ArrayList<HashMap>(); ListDetailsAdapter adapter; static final String KEY_Title = “title”;//”item”; public listDetails() { } /** * Constructor for being created explicitly */ public listDetails(int nAndroids) { this.nAndroids = nAndroids; } /** * […]

EditText不在DialogFragment中恢复状态

我目前有一个DialogFragment,它有一些EditText小部件作为它的视图的一部分。 当发生方向更改时,EditText小部件不会被其中的文本重新填充。 我查看了saveInstanceState,并且通过方向更改保留了文本。 DialogFragment: public final class LoginDialog extends DialogFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.login, container, false); return v; } } 一个示例EditText: 我正在使用android兼容包。

FragmentActivity#onDetachFragment在哪里?

每次我将片段附加到我的活动时,我都想注册它以接收活动中的事件。 这很容易,因为我可以覆盖FragmentActivity#onAttachFragment(Fragment) 。 从活动中删除片段后,我想从接收事件中取消注册。 我希望有一个onDetachFragment事件,我可以以类似的方式使用,但我找不到它。 还有另一种方法来完成我想要做的事情吗? 我想在活动中保持注册/取消注册,而不是将其移动到基本片段类(我可以使用onAttach / onDetach )。

使用android.support.v7.widget.SearchView时获取类转换exception

我正在使用菜单在操作栏上显示“搜索”图标。 我已经创建了搜索视图 itemSearch = menu.findItem(R.id.action_search_chat_home_container); searchView = (SearchView) MenuItemCompat.getActionView(itemSearch); 我使用android-support-v7-appcompat作为库项目。 菜单的XML … 我收到以下错误 *03-18 12:19:46.965 E/com.abc.contactbook.RTContactBookActivity<======(14993): java.lang.ClassCastException: android.support.v7.internal.view.menu.MenuItemWrapperICS$CollapsibleActionViewWrapper cannot be cast to android.support.v7.widget.SearchView 03-18 12:19:46.965 E/com.abc.contactbook.RTContactBookActivity<======(14993): at com.abc.contactbook.RTContactBookActivity.onCreateOptionsMenu(RTContactBookActivity.java:874) 03-18 12:19:46.965 E/com.abc.contactbook.RTContactBookActivity<======(14993): at android.support.v4.app.Fragment.performCreateOptionsMenu(Fragment.java:1560) 03-18 12:19:46.965 E/com.abc.contactbook.RTContactBookActivity<======(14993): at android.support.v4.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:1949) 03-18 12:19:46.965 E/com.abc.contactbook.RTContactBookActivity<======(14993): at android.support.v4.app.Fragment.performCreateOptionsMenu(Fragment.java:1563) 03-18 12:19:46.965 E/com.rancore.contactbook.RTContactBookActivity<======(14993): at android.support.v4.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:1949) 03-18 12:19:46.965 E/com.abc.contactbook.RTContactBookActivity<======(14993): at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:225) 03-18 12:19:46.965 […]