标签: android-fragmentactivity

安卓设置界面

我正在寻找类似于系统 android 的设置 UI 的东西。我想在应用程序启动时使用一些复选框首选项、开关首选项、edittextpreferences 之类的东西,然后当用户选择一个首选项时打开一个片段,但我无法弄清楚。

我已经提到了设置指南,但它坚持使用首选项标题。在显示标题时,我面临着显示文本的不太可能的开销,而这些文本又会加载片段。

例如,

我的首选项标题类似于:

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- These settings headers are only used on tablets. -->

    <header
        android:fragment="${packageName}.${activityClass}$GeneralPreferenceFragment"
        android:title="@string/pref_header_general" />
    <header
        android:fragment="${packageName}.${activityClass}$NotificationPreferenceFragment"
        android:title="@string/pref_header_notifications" />
    <header
        android:fragment="${packageName}.${activityClass}$DataSyncPreferenceFragment"
        android:title="@string/pref_header_data_sync" />

</preference-headers>
Run Code Online (Sandbox Code Playgroud)

只是为了加载实际数据,我不得不使用它。实际数据将有复选框和编辑文本。

如果有人对此提供一些见解,那就太好了。如果我可以在加载屏幕时启动实际的片段数据,那将会有很大帮助。如果我可以控制在选择片段项目时调用哪个片段并调用其他片段,那就更好了。

android android-preferences android-fragments android-fragmentactivity

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

java.lang.ClassCastException:片段无法强制转换为android.support.v4.app.Fragment

我正在尝试实现Tab Navigation,我有一个扩展Fragment Activity的Container Activity,而这个Activity使用ActionBar创建一个TabView.该应用程序将尝试创建三个选项卡并将它们添加到ActionBar,我想根据TabSelection更改片段.但是发生了错误07-04 12:17:33.534: E/AndroidRuntime(795): Caused by: java.lang.ClassCastException: com.freight.fragments.TruckStatus cannot be cast to android.support.v4.app.Fragment.

TruckActivity.java

package com.freight.activities;

import java.util.Locale;

import com.clacion.freightexchange.R;
import com.clacion.freightexchange.R.drawable;
import com.clacion.freightexchange.R.id;
import com.clacion.freightexchange.R.layout;
import com.clacion.freightexchange.R.menu;
import com.clacion.freightexchange.R.string;
import com.freight.fragments.TruckStatus;

import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.NavUtils;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class TruckActivity extends FragmentActivity implements
        ActionBar.TabListener {

    /**
     * The {@link …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-actionbar android-fragmentactivity android-support-library

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

从Fragment调用FragmentActivity

我可以从片段中调用片段活动吗?

如果我可以打电话,怎么办呢?

否则,我该如何解决这个问题呢?

在我的代码中,我想从"FragmentMain"片段调用FragmentWizard.class,但这不能编译.

以下是我的代码:

public class FragmentMain extends Fragment {
TextView textView;
Button x;

public FragmentMain() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_main, null);

    textView = (TextView) view.findViewById(R.id.fragment_main_textview);
    x = (Button) view.findViewById(R.id.deneme);
    x.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent firstpage= new Intent(getActivity(),FragmentWizard.class);
            startActivity(firstpage);
        }
    });


    return view;
}
}
Run Code Online (Sandbox Code Playgroud)

FragmentWizard.java

public class FragmentWizard extends FragmentActivity implements
    PageFragmentCallbacks, ReviewFragment.Callbacks, ModelCallbacks {
private ViewPager mPager;
private MyPagerAdapter mPagerAdapter;

private …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-fragmentactivity

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

从fragmentActivity刷新片段UI

我想从FragmentActivity中更改片段中的ImageView(在代码中创建).(XML中没有片段和标记).

从FragmentActivity扩展的MainActivity和从GooglePlayServicesClient.ConnectionCallbacks实现的:

...
FragmentAdapter mAdapter;
ViewPager mPager;
...

public void onCreate(Bundle savedInstanceState){
    ...
    FragmentManager fm = getSupportFragmentManager();
    mAdapter = new FragmentAdapter(fm);
    mPager.setAdapter(mAdapter);
    ...}

@Override
public void onConnected(Bundle connectionHint){
//*** I want to change a ImageView on Fragment1 here
}
Run Code Online (Sandbox Code Playgroud)

从FragmentPagerAdapter扩展的FragmentAdapter:

...
private FragmentManager mFragmentManager;

public FragmentAdapter(FragmentManager fm){
    super(fm);
}

@Override
public Fragment getItem(int pos){
// String name = makeFragmentName(R.id.mainPager, pos);
// Fragment fragmentObject = mFragmentManager.findFragmentByTag(name);
Fragment fragmentObject = null;

switch(pos){
    case 0:
        fragmentObject = new Fragment1();
        break;
    ...
}

return …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentpageradapter android-fragmentactivity

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

列表视图中的空对象引用

我在一个片段中有一个listview,我用JSON调用中的信息填充.

我有一个问题弄脏了我的片段中的listview.我的片段只扩展了Fragment,我假设这可能是我的问题所在.我正在帮助我导入json数据的示例代码没有使用片段所以我有点困惑.

我的错误是:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference

at com.peekatu.Fcc4me.watchFragment$GetContacts.onPostExecute(watchFragment.java:192)
            at com.peekatu.Fcc4me.watchFragment$GetContacts.onPostExecute(watchFragment.java:119)
            at android.os.AsyncTask.finish(AsyncTask.java:632)
            at android.os.AsyncTask.access$600(AsyncTask.java:177)
            at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Run Code Online (Sandbox Code Playgroud)

分段

public class watchFragment extends Fragment {


private static final String TAG_DATA = "data";
private static final String TAG_TITLE = "title";
private static final String TAG_URL = "video_url";
private static final String TAG_IMAGE = "image";
public ListView lv;

private …
Run Code Online (Sandbox Code Playgroud)

json android-listview android-fragments android-fragmentactivity

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

单击时如何不更改底部导航视图项目颜色

我有三件物品 bottomNavigationView

在此处输入图片说明

当我单击个人资料项时,代码会检查此人是否已登录。如果此人未登录,则我需要开始一个新的Activityelse 我需要fragment在我的frameLayout.

现在的问题是,当我单击配置文件项并且此人未登录时,活动开始,但是当我单击返回时,配置文件项会突出显示,但主页片段已加载到框架布局中。

在此处输入图片说明

我尝试了以下方法来解决这个问题

1)我曾经setSelectedItemId在点击个人资料项目时设置项目颜色但它不起作用

有没有其他方法可以做到这一点?

android android-fragments android-fragmentactivity bottomnavigationview

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

带片段的活动和另一个活动在onActvityResult上返回null

ActivityOne- >包含FragmentOne,我添加了onActivityResult方法

FragmentOne- >包含recyclerView并在项目上单击startActivityForResult转到ActivityTwo

ActivityTwo- >有关FragmentOne中recyclerView中项目详细信息

ActivityOne在ActivityResult上获取空数据

代码:ActivityOne

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Utils.showToast("intent receive");
    if (requestCode==1111 && resultCode == RESULT_OK){
        int position =(int) data.getExtras().get("position");
        Log.d("TAG", "onActivityResult: "+ position);
    }
}
Run Code Online (Sandbox Code Playgroud)

代码:FragmentOne

   Intent i = new Intent(mContext.getApplicationContext(), ActivityTwo.class);
            Bundle bundle = new Bundle();
            bundle.putInt("id", id);
            bundle.putInt("position",position);
            i.putExtras(bundle);  
            ((Activity) mContext).startActivityForResult(i,1111);
Run Code Online (Sandbox Code Playgroud)

代码:ActivityTwo

@Override
public void onBackPressed() {
    super.onBackPressed();
    if (hasChanges){
        Intent intent = new Intent();
        intent.putExtra("position",position);
        setResult(Activity.RESULT_OK,intent);
    }
    finish();
}
Run Code Online (Sandbox Code Playgroud)

android android-fragmentactivity

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

将sqlite数据库中的所有数据显示到选项卡式活动中的列表视图中

作为 android 开发的新手,我已经被这个问题困住了几个星期,而且越来越累了。

在查看了每个教程并阅读了我能找到的每个问题和答案后,我仍然不知道如何让 Android Studio 只获取我的 SQLite 数据库中的内容并将其内容粘贴到listview. 我原以为android:displayallfrom("myDB")XML 文件中会有某种命令来显示数据库中的所有内容,但它似乎要复杂得多。

基本上,我想要做的是在我的选项卡视图 ( )的第一个选项卡中将我的数据库( Dogs.db) 中的所有数据显示到我的listview( list_dogs) 中Tab1

这是我的代码:

表1.java

package com.example.major.awoo;

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

public class Tab1 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.tab1, container, false);
        return rootView;
    }
}
Run Code Online (Sandbox Code Playgroud)

tab1.xml

<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" …
Run Code Online (Sandbox Code Playgroud)

sqlite android listview android-fragmentactivity

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

我如何获得 Activity 而不是 FragmentActivty?

片段内的 getActivity (kotlin: activity) 给了我 FragmentActivity。但是现在我需要 Activity 而不是 FragmentActivity 用于特定的侦听器,并且无法将其转换为 Activity。

android android-fragments android-activity android-fragmentactivity

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

片段单元测试:launchFragment 抛出 ClassCastException

我试图在我的单元测试中调用 Fragment 类中的方法,但我不断收到错误消息 java.lang.ClassCastException: androidx.fragment.app.testing.FragmentScenario$EmptyFragmentActivity cannot be cast to com.nu.rms.inspections.ui.activity.InspectionActivity

我正在关注 Google 的文档。我很困惑为什么空片段活动有一个演员试图成为我的检查活动(片段所在的父活动),也许这是预期的?

我可以做些什么来缓解 CastClassException 并在我的单元测试中使用我的片段方法?(相关问题不能解决我的问题

测试

@RunWith(AndroidJUnit4::class)
class ExampleUnitTest {
    @Test
    fun `inspection failure point to location mapping is correct`() {
        val scenario = launchFragment<ContentFragment>()
        scenario.onFragment { fragment ->
            //TODO: test logic
        }
    }
...
}
Run Code Online (Sandbox Code Playgroud)

片段类

import androidx.fragment.app.Fragment
...
class ContentFragment : Fragment() {...}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪

java.lang.ClassCastException: androidx.fragment.app.testing.FragmentScenario$EmptyFragmentActivity cannot be cast to com.nu.rms.inspections.ui.activity.InspectionActivity
    at com.nu.rms.inspections.ui.fragment.ContentFragment.clearRFIDCache(ContentFragment.kt:565)
    at com.nu.rms.inspections.ui.fragment.ContentFragment.showStep1(ContentFragment.kt:222)
    at com.nu.rms.inspections.ui.fragment.ContentFragment.access$showStep1(ContentFragment.kt:37)
    at com.nu.rms.inspections.ui.fragment.ContentFragment$onViewCreated$1.onChanged(ContentFragment.kt:77)
    at com.nu.rms.inspections.ui.fragment.ContentFragment$onViewCreated$1.onChanged(ContentFragment.kt:37)
    at androidx.lifecycle.LiveData.considerNotify(LiveData.java:113) …
Run Code Online (Sandbox Code Playgroud)

testing android unit-testing android-fragments android-fragmentactivity

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