相关疑难解决方法(0)

FragmentPagerAdapter仅存在于Android.Support.V4.App(而不是Android.App)中

我在Android.App中找不到找到FragmentPagerAdapter.

我不想使用Android.Support.V4.App中的Fragment,因为我的目标API是14及更高版本(Android 4.0及更高版本).所以,我想使用Android.App.Fragments的平原,以及相关的类.

我只在Android.Support.V4.App中找到它,但这对我来说不够b/c我正在尝试使用Android.App.Fragment(而不是Android.Support.V4.App.Fragment)并且那里Android.App(不是Android.Support.V4.App)中的相关类,如果我从FragmentPagerAdapter派生我的寻呼机(如果它来自支持库),我的代码将无法编译,因为Android.App和Android.Support之间的类型不匹配.V4.App.

就像这里的情况一样无法强制转换为android.app.Fragment,是否有一个"普通"的寻呼机(PagerAdapter)类我应该用它代替FragmentPagerAdapter或其他东西(就像你从普通的Activity派生而来,而不是FragmentActivity,在针对API 11或更高版本时).

下面是我正在使用的示例代码(它来自于https://github.com/xamarin/monodroid-samples/tree/master/Support4上的MonoDroid示例的Support4.sln解决方案中的FragmentPagerSupport.cs文件).

我已经注释掉引用Android.Support.V4.App的行,并用引用Android.App的代码替换它们.我找不到Android.Support.V4.App之外没有FramePagerAdapter,我真的需要它.

谢谢.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
//using Android.Support.V4.App;
//using Android.Support.V4.View;

namespace Support4
{
    [Activity (Label = "@string/fragment_pager_support")]
    [IntentFilter (new[]{Intent.ActionMain}, Categories = new[]{ "mono.support4demo.sample" })]
    //public class FragmentPagerSupport : FragmentActivity
        public class FragmentPagerSupport : Activity
    {
        const int NUM_ITEMS = 10;
        MyAdapter adapter;
        ViewPager pager;

        protected override void OnCreate (Bundle bundle)
        { …
Run Code Online (Sandbox Code Playgroud)

android xamarin.android android-fragments fragmentpageradapter

163
推荐指数
2
解决办法
5万
查看次数

用兼容包android充气片段

我试图给包含Fragment使用向后兼容包的布局充气.我把jar文件放在我项目的libs文件夹中.我扩展了Fragment,然后尝试通过将Activity的contentView设置为来扩充它

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">
 <fragment
  class="com.test.fragments.AdFragment"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"/></LinearLayout>
Run Code Online (Sandbox Code Playgroud)

但是当我设置内容视图时,它会ClassNotFoundException因为片段标记而失败.这是logcat输出.

java.lang.RuntimeException: Unable to start activity ComponentInfo{}: \
      android.view.InflateException: Binary XML file line #51: \
      Error inflating class fragment
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1777)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1793)
   at android.app.ActivityThread.access$1500(ActivityThread.java:123)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:123)
   at android.app.ActivityThread.main(ActivityThread.java:3848)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:507)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
   at dalvik.system.NativeStart.main(Native Method)

 Caused by: android.view.InflateException: Binary XML file line #51: \
      Error inflating class fragment
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:320) …
Run Code Online (Sandbox Code Playgroud)

android backwards-compatibility android-inflate android-fragments

26
推荐指数
1
解决办法
2万
查看次数

使用Android兼容性库寻找错误的片段类

我正在尝试使用向后兼容包和SDK级别10来扩展包含Fragment的布局.我将jar文件放在我项目的libs文件夹中.我扩展了FragmentActivity.

当我在XLarge屏幕设备上运行API级别11时,它完全可以正常工作.

当我退回到针对级别10进行编译并在正常大小的屏幕上运行时,我在创建新活动并使其中的片段膨胀时失败.

引起:java.lang.ClassNotFoundException:loader中的android.view.fragment dalvik.system.PathClassLoader [/data/app/com.motoappsummitagenda-1.apk] 04-01 01:07:14.311 2870 2870 E AndroidRuntime:at dalvik .system.PathClassLoader.findClass(PathClassLoader.java:243)

所以它看起来像什么,某处正在寻找android.view.fragment,而不是兼容版本android.support.v4.app.Fragment.当然,在API级别10上找不到android.view.fragment.但是android.view.fragment来自哪里?

正在膨胀的XML是

<?xml version="1.0" encoding="utf-8"?>
<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:name="com.motorapp.SessionFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/sessionfragment">
</fragment>
Run Code Online (Sandbox Code Playgroud)

它的代码开始:

package com.motorapp;

import java.util.List;
import java.util.ListIterator;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.support.v4.app.*;
import android.support.v4.util.*;
import android.support.v4.*;
import android.support.v4.widget.*; 

public class SessionFragment extends android.support.v4.app.Fragment {
Run Code Online (Sandbox Code Playgroud)

症状类似于这个问题,但我没有那些错误用兼容包android扩展 碎片

android.compatibility.v4.android-support-v4 jar文件位于Eclipse中我的构建路径下的Project> Properties> Java build path

我在清单中(我尝试过不同的名称变体). …

android android-fragments

9
推荐指数
3
解决办法
2万
查看次数