标签: android-fragments

使用向上按钮从活动返回到片段

在主要活动中,我创建了两个用作选项卡式菜单的片段.其中一个片段包含一个列表,其中列表项在单击时开始新活动.我想使用Up Action/Navigation按钮从新活动返回到片段(列表),但不显示任何列表,只显示空标签.我已将parent活动声明为manifest.xml中的主要活动.

当我使用手机的后退按钮时它工作正常.

List是在fragment的onViewCreated方法中创建的.

清单:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Main2Activity"
        android:parentActivityName=".MainActivity" >
    </activity>
</application>
Run Code Online (Sandbox Code Playgroud)

使用listView启动新活动的片段:

 public static class frag extends Fragment {

    private static final String ARG_SECTION_NUMBER =   "section_number";

    public frag() {
    }
    public static frag newInstance(int sectionNumber) {
        frag fragment = new rangingFrag();
        Bundle args = new Bundle();
        args.putInt(ARG_SECTION_NUMBER, sectionNumber);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments android-activity

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

stack = java.lang.StackOverflowError:堆栈大小为8MB

我得到这个StackOverFlow错误,我完全理解它,但问题是我不处理大数据,那么如何产生这个错误呢?

我有一个活动,Framelayout,一个片段,3个选项.

在片段中,当你单击其中一个选项时,它会重新创建片段并放置随机数,MAX是15,所以它不是那么大,当用户点击这么快的选项导致这个溢出时会发生这个错误.

这是生成的代码,有关"增强"它的任何想法吗?我不知道这个代码对于momery使用是否是一种不好的做法.

private static List<Integer> SavedNumbers;

public static void SetupSavedNumbersLIst(){
    SavedNumbers = new ArrayList<>();
}


static List<Integer> range;
private static void AddDiff(int mMAX){
    range = new ArrayList<>();
    for(int i = 0 ; i < mMAX ; i++){
        range.add(i);
    }

    range.removeAll(SavedNumbers);
}

private static int ReturnIfDuplic(int mMAX){
    AddDiff(mMAX);
    return new Random().nextInt(range.size());
}


public static int ReturnUniqueSavedNumber(int mMAX){
    int Random = ReturnRandom(mMAX);
    if(SavedNumbers != null && SavedNumbers.size() > 0) {
        if(DoesSavedNumberExist(Random)){
            return ReturnIfDuplic(mMAX);
        } else {
            SavedNumbers.add(Random);
            return …
Run Code Online (Sandbox Code Playgroud)

java stack-overflow android android-fragments

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

Android:尝试在空对象引用上调用虚拟方法

我有一个具有一个活动的应用程序,此活动有一个片段。在此片段中,我在Listview中显示“待处理订单”。我设置了我的方法,以每55秒一次在我的数据库中为挂起的订单重新加载搜索。我每60秒重新加载一次活动。问题是,当片段被加载时出现此错误:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'java.io.File android.content.Context.getCacheDir()'

而且我正在尝试跟踪此问题,但这并不是一件容易的事,因为我仍然是Android开发的初学者。

这是片段:

public class PendingOrdersFragment extends Fragment implements AdapterView.OnItemClickListener {

    ListView lstOrders;
    ArrayList<ChefOrderList> orderLists;
    TextView empty;

    private SwipeRefreshLayout mSwipeRefreshLayout;
    private final Handler handler = new Handler();

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_list, null);

    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        doTheAutoRefresh();
        lstOrders = (ListView) view.findViewById(lstFood);
        lstOrders.setOnItemClickListener(this);
        empty = (TextView) view.findViewById(R.id.empty);

        mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh);
        mSwipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary);
        mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                if (NetworkHelper.isOnline(getActivity())) …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-fragments

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

如何在片段中隐藏软键盘?

我想隐藏在android中的片段中的键盘.因为一旦它显示它仍然在所有片段中可见.我尝试这种方法

    public static void hideKeyboard(Context ctx) {
    InputMethodManager inputManager = (InputMethodManager) ctx
            .getSystemService(Context.INPUT_METHOD_SERVICE);

    // check if no view has focus:
    View v = ((Activity) ctx).getCurrentFocus();
    if (v == null)
        return;

    inputManager.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
Run Code Online (Sandbox Code Playgroud)

并在按钮单击时调用此方法

signIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                hideKeyboard(ctx);
                login();


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

但这会给出错误"java.lang.NullPointerException:尝试在空对象引用上调用虚方法'java.lang.Object android.content.Context.getSystemService(java.lang.String)'"

android android-fragments

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

为什么android studio显示错误"在constraintlayout中缺少约束"?

图片

此视图不受约束,它只有设计时间位置,因此除非添加约束,否则它将跳转到(0,0)

布局编辑器允许您将小部件放在画布上的任何位置,并使用设计时属性(例如layout_editor_absolute X)记录当前位置.这些属性不会在运行时应用,因此如果您在设备上推送布局,窗口小部件可能出现在与编辑器中显示的位置不同的位置.要解决此问题,请通过从边连接拖动来确保窗口小部件具有水平和垂直约束

java android android-layout android-fragments android-studio

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

java.lang.NullPointerException是由Fragment中的getContentResolver()引起的

我在下面有这个代码.它在Activity之前有效.现在我想将它转换为Fragment.我尝试过context.getContentResolver(); getActivity().getContentResolver(); 但它不起作用.如何解决这个问题?

public class MyFragmentA extends Fragment {

//song list variables
    private ArrayList<Song> songList;
    private ListView songView;
    public Context context;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View myFragmentView = inflater.inflate(R.layout.fragment_a, container, false);

    //retrieve list view
            songView = (ListView) myFragmentView.findViewById(R.id.song_list);
            //instantiate list
            songList = new ArrayList<Song>();
            //get songs from device
            getSongList();
            //sort alphabetically by title
            Collections.sort(songList, new Comparator<Song>(){
                public int compare(Song a, Song b){
                    return a.getTitle().compareTo(b.getTitle());
                }
            });
            //create and set adapter
            SongAdapter songAdt …
Run Code Online (Sandbox Code Playgroud)

java android nullpointerexception android-fragments

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

活动是否应始终具有片段

我正在写一个Android应用程序.我有一个MainActivity.MainActivity有Viewpager,它有三个片段.我还有另一个名为CreateStudyActivity的活动.该类创建一个Object并将其返回给MainActivty.没有必要更改片段,我不想将片段共享给其他活动.

现在我的问题.为每个Activity创建一个片段是一个好习惯.还是矫枉过正?

提前致谢

android android-fragments android-activity

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

Android Fragment是一个Linux进程吗?

问题很简单:Android Fragment是一个不同于Activity的Linux进程吗?

linux android process android-fragments

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

循环进度条,包含Android中的自定义文本

我需要创建一个循环进度条,如下所示.

在此输入图像描述

我试过CircleView Progress bar插件

但它不允许内部自定义文本像我的图像.请帮我解决这个问题.

先谢谢你

android android-layout android-fragments progress-bar

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

如何在android中以编程方式为线性布局设置底部边框

我想以编程方式在线性布局的底部设置粗边框颜色.我找到了很多代码,但我找不到我需要的东西.

码:

LinearLayout li=new LinearLayout(getActivity());
li.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
li.setOrientation(LinearLayout.VERTICAL);
Run Code Online (Sandbox Code Playgroud)

谢谢.

android android-layout android-fragments android-studio

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