标签: android-fragmentactivity

使用 AppCompatDelegate.setDefaultNightMode() 设置 DayNight 主题不适用于 FragmentActivity

我有点疑惑。我在我的应用程序中使用 DayNight 主题(使用AppCompatDelegate.setDefaultNightMode()),但无法让它在我的MainActivity. (MainActivity扩展的FragmentActivity)看起来从未设置为深色主题 -它始终保持浅色主题

我尝试直接在我的 MainActivity 中设置主题:

@Override
protected void onCreate(Bundle savedInstanceState) {
    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
    super.onCreate(savedInstanceState);
    // create main activity.
}
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

我已使用 ?attr/colorReference 正确设置了布局文件中的所有颜色。有谁知道这里出了什么问题?

编辑: 我的 styles.xml 如下:

<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <!--Default typeface and colors:-->
    <item name="android:typeface">monospace</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="colorAccentDarker">@color/colorAccentDarker</item>
    <item name="colorAccentDarker_80percent">@color/colorAccentDarker_80percent</item>

    <!--Show people's own wallpaper background-->
    <item name="android:windowShowWallpaper">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android android-fragmentactivity theme-daynight

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

FragmentActivity上的ActivityNotFoundException

我在Play商店中有很多基于活动的简单应用程序.两天后,我尝试用Fragments做我的第一步.我还是不明白.我已经阅读了大部分关于Fragments的所有文档,博客和指南,但是我的愚蠢的简单测试应用程序拒绝以MyActivity上的ClassNotFoundException开头.

所以这就是我到目前为止所做的:

起始的FragmentActivity称为MyActivity:

public class MyActivity extends FragmentActivity {

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        setContentView(R.layout.myactivity);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是layout/myactivity.xml:

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

    <fragment
        class="com.test.app.Table1List"
        android:id="@+id/table1list"
        android:layout_height="match_parent"
        android:layout_width="match_parent" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是ListFragment及其XML文件:

public class Table1List extends ListFragment {

    @Override
    public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
        if (viewGroup == null) {
            return null;
        }

        return layoutInflater.inflate(R.layout.table1list, viewGroup);
    }
}

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ListView
        android:drawSelectorOnTop="false"
        android:fastScrollEnabled="true" 
        android:id="@id/android:list"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent" />

    <TextView
        style="@style/TextViewMedium"
        android:id="@id/android:empty"
        android:text="@string/txt_noresult" …
Run Code Online (Sandbox Code Playgroud)

android fragment android-fragmentactivity

1
推荐指数
1
解决办法
5838
查看次数

FragmentActivity onCreateView

我尝试使用Android兼容性库(或现在称为支持库)v4用于预蜂窝式Android设备.我理解,我应该使用FragmentActivity类,而不是使用Fragment类.根据我能找到的所有教程,我可以像在Fragment类中一样使用onCreateView方法:

public View onCreateView(LayoutInflater inflater,ViewGroup容器,Bundle savedInstanceState)

但是,FragmentActivity中的onCreateView方法似乎有所不同.我继承的是:

public View onCreateView(String name,Context context,AttributeSet attrs)

此版本实际上列在FragmentActivity类的Android参考中.
似乎我找到的所有教程都没有说明这种差异,而且所有教程都在Fragment类中调用它.我在这里误以为我应该以某种方式调用Fragment类版本的onCreateView吗?

android android-fragmentactivity

1
推荐指数
1
解决办法
7765
查看次数

setText来自片段内部

我在片段活动中运行setText命令,尝试在父活动中设置textView的文本,但它不起作用.有任何想法吗?

TextView text = (TextView) getView().findViewById(R.id.status);
        text.setText("Text from a fragment");
Run Code Online (Sandbox Code Playgroud)

我在eclipse中没有收到错误,但是在运行时我得到了一个空指针异常.当然它发生在我setText的行.关于如何做到这一点的任何想法?

java android android-fragments android-fragmentactivity

1
推荐指数
1
解决办法
8779
查看次数

findViewById(int)方法未定义

我正在扩展片段,我得到这个错误说,该方法findViewById(int)未定义类型宋.

findViewById上的进度条和webview都出现错误.

public class Song extends Fragment{


    ProgressBar progressBar;


    @Override


    public View onCreateView(LayoutInflater inflater, ViewGroup container,


    Bundle savedInstanceState) {


    View myFragmentView = inflater.inflate(R.layout.song, container, false);


    return myFragmentView;


    progressBar = (ProgressBar)findViewById(R.id.progressBar);


    final WebView mWebView = (WebView)findViewById(R.id.Browsery);


    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);


    mWebView.loadUrl("....");


    mWebView.setWebViewClient(new WebViewClient(){



    public void onPageFinished(WebView view, String url){


    progressBar.setVisibility(View.INVISIBLE);
    }

    });
Run Code Online (Sandbox Code Playgroud)

我需要帮助

谢谢.

android fragment android-fragments android-fragmentactivity

1
推荐指数
1
解决办法
4830
查看次数

片段可以扩展片段活动吗?[Android]产品

我创建了一个MainActivity,它包含3个可滚动的选项卡(使用ViewPager).现在,这3个标签中的每一个都是片段.另外,我正在使用ActionBarSherlock(ABS).

对于1st Fragment,我创建了以下类:

public class Fragment_1 extends SherlockFragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v = inflater.inflate(R.layout.fragment1, container, false);
        return v;
        /* R.layout.fragment1 only contains a TextView. */
    }
}
Run Code Online (Sandbox Code Playgroud)

对于第二个片段,我想扩展FragmentActivity,如下所示.

public class Fragment_2 extends FragmentActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.fragment2);
        }
}
Run Code Online (Sandbox Code Playgroud)

第3个片段与第一个片段相同.

但是当我启动应用程序时,它会崩溃.那么,我是否在为Fragment_2类扩展FragmentActivity时错了?将FragmentActivity甚至Activity扩展到片段类是不合法的吗?如果没有,这里有什么问题?

谢谢.


编辑:在@ CommonsWare的回答之后,我更新了我的课程如下:

public class Fragment_2 extends SherlockFragment {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Button send = …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-activity android-fragmentactivity

1
推荐指数
1
解决办法
7138
查看次数

将扩展片段添加到Activity

我一直在尝试在android中构建一个Master-Detail f low但想要将其中一个细节片段更改为不同的片段.由于这是我的第一个Android应用程序之一,我只是想在这个新片段上显示一张图片.为此,我构建了以下两个类

1)片段类(显示要显示的图片)

 package com.userName.miscapp;

import com.userName.miscapp.dummy.DummyContent;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class PictureFragment extends Fragment {



    // Default Copy Constructor for the fragment
    public PictureFragment() {
    }

    @Override
    public void onCreate ( Bundle savedInstanceState )
    {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView ( LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState )
    {
        View rootView = inflater.inflate(R.layout.fragment_simple_picture, container, false);
        return rootView;
    }

}
Run Code Online (Sandbox Code Playgroud)

2)活动显示相同

package com.userName.miscapp;

import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.Fragment; …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-fragmentactivity

1
推荐指数
1
解决办法
3887
查看次数

onCreate方法出错(FragmentActivity)

请帮忙!当我试图写onCreate方法时.

此行有多个标记

  • MainActivityParent类型中的onCreate方法只能设置public/protected/private之一

    • 方法断点:MainActivityParent [entry] - onCreate(Bundle)

    • 覆盖android.support.v4.app.FragmentActivity.onCreate

这里:

 package com.example.seledkarelease1;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.concurrent.ExecutionException;

import org.apache.http.util.LangUtils;

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.DialogFragment;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;

public class MainActivityParent …
Run Code Online (Sandbox Code Playgroud)

java android oncreate android-fragmentactivity

1
推荐指数
1
解决办法
2946
查看次数

java.lang.ClassCastException:将一个对象转换为其父对象

我是一名IOS编码员,但我正在尝试学习一些android,但我遇到了问题.

我有以下课程:

package com.example.fragmenttabhostdemo;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Tab1 extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        return inflater.inflate(R.layout.tab1, container, false);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时,控制台说:

java.lang.ClassCastException: com.example.fragmenttabhostdemo.Tab1 cannot be cast to android.support.v4.app.Fragment
Run Code Online (Sandbox Code Playgroud)

我做错了什么想法?我认为,当我尝试为我的Android应用程序布局制作片段活动并向主机添加一些选项卡时,会出现问题:

protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     tabHost = (FragmentTabHost) findViewById(R.id.tabhost);

     tabHost.setup(this, getSupportFragmentManager(), R.id.tabcontent);

     tabHost.addTab(tabHost.newTabSpec("Tab1").setIndicator("Lengueta 1"), Tab1.class, null);
     tabHost.addTab(tabHost.newTabSpec("Tab2").setIndicator("Lengueta 2"),
                           Tab2.class, null);
     tabHost.addTab(tabHost.newTabSpec("Tab3").setIndicator("Lengueta 3"),
                           Tab3.class, null);
   } …
Run Code Online (Sandbox Code Playgroud)

java layout android android-fragmentactivity

1
推荐指数
1
解决办法
395
查看次数

标题栏中的后退导航-片段

像这样问了很多问题,但是我尝试过的一切似乎都不起作用。本质上,我有一个主要活动,该活动根据用户单击的内容(默认为home片段)来调用不同的片段。我想在标题栏上有一个后退按钮,以返回上一个片段。

我的片段是从主要活动中调用的,如下所示:

    Fragment fragment = null;
    fragment = new nextFragment();

    if (fragment != null) {
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

        fragmentTransaction.replace(R.id.frame_container, fragment).addToBackStack(null);
        fragmentTransaction.commit();
        fragmentTransaction.addToBackStack(null);

    } else {
        // error in creating fragment
        Log.e("MainActivity", "Error in creating fragment");
    }
Run Code Online (Sandbox Code Playgroud)

但是由于不赞成使用ActionBarActivity活动,因此我需要扩展AppCompatActivity而不是FragmentActivity,以便可以使用actionbar(我假设这是我需要的)。但是,然后我无法切换到我的片段。因此,有人知道我如何在片段中实现后退按钮,或者在这种情况下如何使用AppCompatActivity。谢谢你的帮助。

android back-button android-fragments android-fragmentactivity

1
推荐指数
1
解决办法
2700
查看次数