我正在寻找类似于系统 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
我正在尝试实现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
我可以从片段中调用片段活动吗?
如果我可以打电话,怎么办呢?
否则,我该如何解决这个问题呢?
在我的代码中,我想从"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) 我想从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
我在一个片段中有一个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
我有三件物品 bottomNavigationView
当我单击个人资料项时,代码会检查此人是否已登录。如果此人未登录,则我需要开始一个新的Activityelse 我需要fragment在我的frameLayout.
现在的问题是,当我单击配置文件项并且此人未登录时,活动开始,但是当我单击返回时,配置文件项会突出显示,但主页片段已加载到框架布局中。
我尝试了以下方法来解决这个问题
1)我曾经setSelectedItemId在点击个人资料项目时设置项目颜色但它不起作用
有没有其他方法可以做到这一点?
android android-fragments android-fragmentactivity bottomnavigationview
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 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) 片段内的 getActivity (kotlin: activity) 给了我 FragmentActivity。但是现在我需要 Activity 而不是 FragmentActivity 用于特定的侦听器,并且无法将其转换为 Activity。
android android-fragments android-activity android-fragmentactivity
我试图在我的单元测试中调用 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