Tag: android fragments

自定义RecyclerAdapter和startActivityForResult

我有一个包含RecyclerView的Fragment ,它使用自定义的RecyclerAdapter 。 我在自定义的RecyclerAdapter有一个onClickListener – 当点击一个位置时我希望它启动startActivityForResult 。 到目前为止,这样可以在单击它时根据需要启动Activity。 但是,当我按下后退按钮转到包含RecyclerView的Fragment , onActivityResult永远不会被调用。 我已将上下文传递给自定义RecyclerAdapter 。 这是可能的吗? 或者,Activity / Fragment启动startActivityForResult会拦截它? 如果不是,我将最终使用手势检测器或类似的东西处理片段中的onClick,但在此之前我想给这个公平的裂缝! 注意:我在MainActivity包含onActivityResult ,它包含Fragment容器,因此如果从Fragment启动startActivityForResult , Fragment会接收onActivityResult 。 我的代码: RecyclerAdapter onClickListener: @Override public void onClick(View v) { String titleId = titlesListDataArrayList.get(getLayoutPosition()).getTitle_id(); Intent intent = new Intent(context, CreateItemsActivity.class); intent.putExtra(“TITLE_ID”, titleId); ((Activity) context).startActivityForResult(intent, Constants.NEW_ITEMS_REQUEST_CODE); } CreateItemsActivity.class – onBackPressed() @Override public void onBackPressed() […]

Google Maps API v2多个地图片段问题

我已经尝试了新的谷歌地图api v2的几个问题 我有一个包装mapFragment的片段,这是在应用程序的乞讨时创建的。 在用户单击按钮时创建的另一个片段,此内容为另一个mapFragment。 但是这张地图显示了第一个片段上显示的第一张地图。 它也冻结了,不能对它采取行动…… 我已经读过一些用户在显示多地图时遇到问题。 知道怎么解决这个问题? 这是我创建地图的方式: mMapFragment = (SupportMapFragment) this.getActivity().getSupportFragmentManager() .findFragmentByTag(MAP_FRAGMENT_TAG); // We only create a fragment if it doesn’t already exist. if (mMapFragment == null) { // To programmatically add the map, we first create a // SupportMapFragment. mMapFragment = SupportMapFragment.newInstance(); mMapFragment.setRetainInstance(false); // Then we add it using a FragmentTransaction. FragmentTransaction […]

WebView第二次显示空白屏幕?

我目前正在开发一款应用程序,可在Android WebView中以桌面模式加载https://web.whatsapp.com/ whatsapp for web。 它在棒棒糖版本上工作正常,但在API 23及以上版本(棉花糖及以上)应用程序仅加载网站一次,如果按下重新加载按钮,它只显示一个空白屏幕! 这是Android API级别21上的代码正常工作但不是上面请帮助!! public class Main_web_view_frag extends android.support.v4.app.Fragment { public WebView Assignment_webView; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View slide_view = inflater.inflate(R.layout.assignment_main_webview, container, false); Assignment_webView = (WebView)slide_view.findViewById(R.id.webView); Assignment_webView.getSettings().setJavaScriptEnabled(true); Assignment_webView.setWebViewClient(new My_web_Browser()); Assignment_webView.loadUrl(“https://web.whatsapp.com/”); setDesktopMode(true); return slide_view; } private class My_web_Browser extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, […]

使用onOptionsItemSelected从PreferenceArag和PreferenceFragments上升

我在使用Android Studio的默认“设置活动”( extends AppCompatPreferenceActivity )时使用onOptionsItemSelected时遇到了问题。 活动的重要部分是: public class SettingsActivity extends AppCompatPreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setupActionBar(); } private void setupActionBar() { ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { // Show the Up button in the action bar. actionBar.setDisplayHomeAsUpEnabled(true); } } public static class GeneralPreferenceFragment extends PreferenceFragment { // […] […]

Android IllegalStateException:Fragment null必须是要从实例状态正确重新创建的公共静态类

我从我的Android应用程序中得到以下exception: FATAL EXCEPTION: main java.lang.IllegalStateException: Fragment null must be a public static class to be properly recreated from instance state. at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:435) at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:420) at android.support.v4.app.FragmentStatePagerAdapter.instantiateItem(FragmentStatePagerAdapter.java:123) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1006) at android.support.v4.view.ViewPager.populate(ViewPager.java:1154) at android.support.v4.view.ViewPager.populate(ViewPager.java:1088) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1614) at android.view.View.measure(View.java:15525) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:15525) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) at android.view.View.measure(View.java:15525) at […]

如何让android操作栏返回按钮返回片段

大家好,我已经在我的应用程序的操作栏中实现了一个后退按钮,但我不知道如何从一个活动返回到片段或片段到片段。 所以,如果有人能告诉我如何从一个活动返回到一个片段甚至一个片段到另一个片段,这将是惊人的。 这是我现在的代码 public class Article extends Activity{ private WebView webview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.articleview); // etc… getActionBar().setDisplayHomeAsUpEnabled(true); Bundle b = getIntent().getExtras(); String KEY_LINK = b.getString(“b”); String url = getIntent().getStringExtra(“key”); WebView myWebView = (WebView) findViewById(R.id.webView); WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); myWebView.loadUrl(url); myWebView.loadUrl(KEY_LINK); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) […]

将数据从fragment分配给activity变量,并在另一个片段中获取变量

我有一个Android应用程序。 其中一个活动有两个片段。 当我的应用程序启动时,它会将数据分配给其活动中的变量。 然后在单击按钮时,将打开第二个片段,并从活动中分配的活动中获取数据。 但它返回null。 到目前为止我尝试过的是…… 我在我的活动类中创建了变量,并像这样从我的片段中分配数据。 ((MainActivity)getActivity()).resultObj = gson.fromJson(HomeCardString.toString(), HomeCardResult.class); 它完全分配,因为我在这样的相同片段中使用了这些数据 HomeCardListItemAdapter adapter = new HomeCardListItemAdapter(getActivity(), R.layout.home_cardlist_item, ((MainActivity)getActivity()).resultObj.HomeData.FriendSummary); 哪个效果很好。 但是当我在点击时打开我的第二个片段时,它只显示我的布局而不执行任何覆盖方法。 像oncontentview等,因为这些所有方法都是在活动开始时执行的。 但那时我还没有将数据分配给我的活动变量。 所以我做了我自己的方法,并在显示我的第二个片段后立即调用它。 showFragment(FRIENDLIST, true); FriendListActivity asdss = new FriendListActivity(); // this is my second fragment asdss.populateFriendList(); 在第二个片段中,我使用此代码的方法。 public void populateFriendList() { FriendList = ((MainActivity)getActivity()).resultObj.HomeData.Friends; String asd = FriendList.toString(); asd = asd + “asdasda”; […]

何时使用onCreateView进行分片?

我正在按照步骤进行操作 http://developer.android.com/training/basics/fragments/creating.html#AddInLayout 我似乎无法弄清楚为什么他们说,“创建片段时的一个区别是你必须使用onCreateView()回调来定义布局。” 但是没有使用onCreateView作为HeadlinesFragment,只使用了ArticleFragment。 他们似乎都设置了布局,所以我不明白为什么不使用onCreateView。 另外,fragment_container只是xml文件吗? 我猜它只用在MainActivity中。 代码已发布 Android Fragment Basics Tutorial 除了我在下面发布的articleFragment的代码。 到目前为止,我想我明白你有一个扩展fragment活动的类,它包含片段容器和方法来切换其他片段。 那么你有扩展fragment或listFragment的类的片段? 但是,该网站, http://developer.samsung.com/android/technical-docs/Using-Fragments-to-Build-User-Interfaces-in-Android 显示了DONT扩展片段活动但仅仅是活动的活动示例,它应该包含其他片段活动。 这个网站: http://developer.android.com/reference/android/app/Fragment.html 显示了有关片段的更多信息,但生命周期没有说明何时使用OnCreate vs onCreateView,我认为它与布局有关,但是它表明onCreate也开始片段,所以我不肯定使用哪个。 谢谢!!!!! package com.example.android.fragments; import android.support.v4.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class ArticleFragment extends Fragment { final static String ARG_POSITION = “position”; int mCurrentPosition = -1; @Override […]

片段项不会崩溃

我试图在片段中切换我的1个形状的可见性但是每当我单击SwitchPreferenceCompat控件并返回到我加载的片段时它都不起作用。 在我运行应用程序之前和期间都没有出现任何错误或警告。 这是我的代码: fragment_blueshapes.xml SettingsActivity.java public class SettingsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); PreferencesFragment newFragment = new PreferencesFragment(); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.master_container, newFragment); transaction.commit(); } } PreferencesFragment.java public class PreferencesFragment extends PreferenceFragmentCompat { /** * {@inheritDoc} */ @Override public void onCreatePreferences(Bundle bundle, String s) { addPreferencesFromResource(R.xml.app_preferences); } } […]

没有锚点时,不能使用菜单弹出帮助器

我想在操作栏中使用弹出菜单项。 当我在Activity中使用它时,一切都很好但是当我切换到片段时,我得到: MenuPopupHelper cannot be used without an anchor 我的片段: @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.action_filter: createCategoriesPopupMenu(item); return true; case R.id.action_sort: createSortPopupMenu(item); return true; default: return super.onOptionsItemSelected(item); } } private void createSortPopupMenu(MenuItem item) { PopupMenu popup; final View menuItemView = getView().findViewById(item.getItemId()); Log.wtf(“d”,”item getitemid”+item.getItemId()); if (menuItemView == null) { Log.wtf(“d”,”menuItemView==null view”+view.findViewById(item.getItemId())); Log.wtf(“d”,”menuItemView==null […]