Tag: android fragments

活动布局:片段类:vs android:名称属性

我已经阅读了Android开发者指南中关于Fragments的文档,并且我已经看到有时他们指定了要使用Fragment标签属性android:name实例化的类,并且有时他们使用class: attribute: <fragment android:name="com.example.news.ArticleReaderFragment" android:id="@+id/viewer" android:layout_weight="2" android:layout_width="0dp" android:layout_height="match_parent" /> <fragment class="com.example.android.apis.app.FragmentLayout$TitlesFragment" android:id="@+id/titles" android:layout_weight="1" android:layout_width="0px" android:layout_height="match_parent" /> Android:名称和类:可以互换吗? 如果我在Eclipse中使用自动完成function,它们都显示相同的文档提示(即属性提供了要实例化的类名称)。 也许你必须使用第二个,当实例化的类有一个不同于java文件名的名字,如在FragmentLayout.java文件中的TitlesFragment ? 或者我也可以使用语法package.fileDOTjava $ Class也与android:name属性? 我想有一些关于Android Java类的XML标签和属性的文档(我在另一个问题中已经提到过)。

渲染期间引发的exception:二进制XML文件行#-1:错误膨胀类<未知>

我试图在布局中包括checkbox,拖放后我得到这个错误: 渲染期间引发的exception:二进制XML文件行#-1:错误膨胀class<unknown> 。 xml文件: <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.nidhigupta.shopping2.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/textView" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New CheckBox" android:id="@+id/checkBox" android:layout_below="@+id/textView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </RelativeLayout> 请提供一步一步的解决scheme。 细节链接说: java.lang.NoSuchMethodError: android.graphics.drawable.VectorDrawable_Delegate.nCreateTreeFromCopy(JJ)J at android.graphics.drawable.VectorDrawable.nCreateTreeFromCopy(VectorDrawable.java) at android.graphics.drawable.VectorDrawable.access$400(VectorDrawable.java:204) at android.graphics.drawable.VectorDrawable$VectorDrawableState.createNativeTreeFromCopy(VectorDrawable.java:837) at android.graphics.drawable.VectorDrawable$VectorDrawableState.<init>(VectorDrawable.java:812) at android.graphics.drawable.VectorDrawable.mutate(VectorDrawable.java:268) at android.graphics.drawable.DrawableContainer$DrawableContainerState.addChild(DrawableContainer.java:817) at android.graphics.drawable.StateListDrawable$StateListState.addStateSet(StateListDrawable.java:329) at android.graphics.drawable.AnimatedStateListDrawable$AnimatedStateListState.addStateSet(AnimatedStateListDrawable.java:602) at […]

无法从android.app.FragmentManager转换为android.support.v4.app.FragmentManager

我正在创build一个应用程序使用片段的片段。到目前为止,我已经创build了一些button在左侧和片段出现在点击button。 但我在我的MainActivity.java文件中遇到错误“types不匹配错误:不能从android.app.FragmentManager转换到android.support.v4.app.FragmentManager ”这是我不能实现它的主要原因。我已经导入的android.support.v4.app.FragmentManager 。 我该如何解决我的问题? 我的代码为MainActivity.java import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { Fragment fragment; Button btn1,btn2,btn3,btn4,btn5,btn6; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1=(Button)findViewById(R.id.btn1); btn2=(Button)findViewById(R.id.btn2); btn3=(Button)findViewById(R.id.btn3); btn4=(Button)findViewById(R.id.btn4); btn5=(Button)findViewById(R.id.btn5); btn6=(Button)findViewById(R.id.btn6); FragmentManager fm=getFragmentManager(); FragmentTransaction ft=fm.beginTransaction(); StartFragment myfragment=new StartFragment(); ft.add(R.id.myfragment,myfragment); ft.commit(); btn4.setOnClickListener(btnOnClickListener); btn5.setOnClickListener(btnOnClickListener); […]

Android的SharedPreferences在片段

我正在尝试阅读Fragment内部的SharedPreferences。 我的代码就是我用来获取其他Activity的首选项。 SharedPreferences preferences = getSharedPreferences("pref", 0); 我得到错误 Cannot make a static reference to the non-static method getSharedPreferences(String, int) from the type ContextWrapper 我试图遵循这些链接,但没有运气通过静态方法和静态SharedPreferences 访问 SharedPreferences 。 感谢您的任何解决scheme。

无法从活动调用getSupportFragmentManager()

我有一个活动,有一个片段。 XML: <fragment android:name="com.example.androidcalculator.ResultFragment" android:id="@+id/result_fragment" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="wrap_content" /> 我想从Activity中的一个方法的ResultFragment中调用一个方法,但getSupportFragmentManager“不存在”: FragmentManager fragMan = getSupportFragmentManager(); 我该如何解决这个问题?

如何隐藏片段内的软键盘?

我有一个使用ViewPager服务几个片段的FragmentActivity 。 每个是具有以下布局的ListFragment : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="8dp"> <ListView android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <EditText android:id="@+id/entertext" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout> 当开始活动时,软键盘显示。 为了解决这个问题,我在片段内部做了以下操作: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //Save the container view so we can access the window token viewContainer = container; //get […]

notifyDatasetChanged()后,RecyclerView闪烁

我有一个RecyclerView从API加载一些数据,包括一个图像的URL和一些数据,我使用networkImageView来延迟加载图像。 @Override public void onResponse(List<Item> response) { mItems.clear(); for (Item item : response) { mItems.add(item); } mAdapter.notifyDataSetChanged(); mSwipeRefreshLayout.setRefreshing(false); } 这是适配器的实现: public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { if (isHeader(position)) { return; } // – get element from your dataset at this position // – replace the contents of the view with that element MyViewHolder […]

如何使用FragmentPagerAdapter获取现有片段

我有问题,通过使用FragmentPagerAdapter的Activity将我的片段彼此进行通信,作为帮助程序类实现标签的pipe理以及将ViewPager与关联的ViewPager连接的所有详细信息。 我已经实现了FragmentPagerAdapter就像Android示例项目Support4Demos提供的一样 。 主要的问题是我怎样才能从FragmentManager得到特定的片段,当我没有Id或标签? FragmentPagerAdapter正在创build片段并自动生成标识和标签。

片段生命周期 – 显示/隐藏哪个方法?

我正在使用以下方法通过显示/隐藏片段(在我的NavigationDrawer)之间切换。 protected void showFragment(int container, Fragment fragment, String tag, String lastTag, boolean addToBackStack ) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); if ( lastTag != null && !lastTag.equals("")) { Fragment lastFragment = fragmentManager.findFragmentByTag( lastTag ); if ( lastFragment != null ) { transaction.hide( lastFragment ); } } if ( fragment.isAdded() ) { transaction.show( […]

处理ActionBar标题与片段回栈?

我有一个Activity ,我在一个ListFragment加载,点击后,它向下钻取一个级别,并显示一个新types的ListFragment ,replace原来的(使用下面的showFragment方法)。 这是放在后面的堆栈。 在开始时,活动在操作栏中显示默认标题(即,它基于应用程序的android:label自动设置)。 当显示层次结构中下一级的列表时,单击的项目名称应该成为操作栏的标题。 但是,按Back时 ,我想要恢复原来的默认标题。 这不是FragmentTransaction知道的事情,所以标题不会被恢复。 我隐约看了FragmentBreadCrumbs ,但这似乎需要使用自定义视图。 我使用ActionBarSherlock,并希望没有我自己的自定义标题视图。 这样做的最好方法是什么? 是否有可能没有一个样板代码的负载,并不得不跟踪在途中显示的标题? protected void showFragment(Fragment f) { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.fragment_container, f); ft.addToBackStack(null); ft.commit(); }