相关疑难解决方法(0)

将Dialog Fragment中的字符串返回给Activity

我已经阅读了很多这方面的帖子,但我找不到任何适用于这种情况的帖子.

我有一个时间选择器对话框,我已将整数值放在一个字符串中,我需要将此字符串返回到主活动.

然后,此字符串值将用于设置按钮的文本.

如果有人可以帮助我,我将非常感激.

谢谢

对话片段

public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current time as the default values for the picker
        final Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);

        // Create a new instance of TimePickerDialog and return it
        return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity()));
    }

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // Do something with the time chosen by …
Run Code Online (Sandbox Code Playgroud)

android dialog

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

从DialogFragment获取价值

我想让我DialogFragment回复一个在editQuantity被解雇时输入的值.

但我没有办法让它发挥作用.我可以通过传递值来执行此操作,intent但这会破坏当前活动的进度.

除了通过之外还有什么办法intent可以让我回报价值吗?

package com.example.myprojectname;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.text.InputType;
import android.util.Log;
import android.widget.EditText;

public class QuantityDialogFragment extends DialogFragment implements OnClickListener { 


    private EditText editQuantity;

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        editQuantity = new EditText(getActivity());
        editQuantity.setInputType(InputType.TYPE_CLASS_NUMBER);

        return new AlertDialog.Builder(getActivity())
        .setTitle(R.string.app_name)
        .setMessage("Please Enter Quantity")
        .setPositiveButton("OK", this)
        .setNegativeButton("CANCEL", null)
        .setView(editQuantity)
        .create();

    }

    @Override
    public void onClick(DialogInterface dialog, int position) {
        String value = …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

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

方向更改时的DialogFragment回调

我正在迁移我正在使用的对话框,Activity.showDialog(DIALOG_ID);以便DialogFragmentandroid参考中讨论使用该 系统.

在使用回调将一些事件传递回打开对话框的活动/片段时,我的开发过程中出现了一个问题:

这是一个简单对话框的示例代码:

public class DialogTest extends DialogFragment {

public interface DialogTestListener {
    public void onDialogPositiveClick(DialogFragment dialog);
}

// Use this instance of the interface to deliver action events
static DialogTestListener mListener;

public static DialogTest newInstance(Activity activity, int titleId, int messageId) {
    udateListener(activity);
    DialogTest frag = new DialogTest();
    Bundle args = new Bundle();
    args.putInt("titleId", titleId);
    args.putInt("messageId", messageId);
    frag.setArguments(args);
    return frag;
}

public static void udateListener(Activity activity) {
    try {
        // Instantiate the NoticeDialogListener …
Run Code Online (Sandbox Code Playgroud)

android dialog callback orientation-changes android-dialogfragment

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

从带有结果的对话框或活动返回

我想知道我是否可以冻结当前的Activity,而我等待另一个活动或对话(任何可以)完成.

我知道我可以为结果启动一个活动,并在那里处理它们,但是startActivityForResult()之后的代码仍然会被执行

这是我想做的事情:

PopupDialog dialog = new PopupDialog(this,android.R.style.Theme_Black_NoTitleBar);
dialog.show();
// wait here, and continue the code after the dialog has finishes
int result = getResultFromDialogSomehow();
if (result == 1){
    //do something
}else{
    //do something else
}
Run Code Online (Sandbox Code Playgroud)

我知道这听起来很奇怪,但是如果有人能告诉我如何实现这样的功能,我真的很感激.

android dialog android-activity

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

如何将数据从一个片段传输到另一个片段android

我知道的一种方式是通过activity.We可以从片段发送数据到活动和活动到片段有没有其他方式.

android fragment

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

不推荐使用 setTargetFragment() 后如何替换它

setTargetFragment()在 Java 中已弃用,我不明白它的正确替代品,因为 android 文档使用它并且已经过时。我相信这FragmentManager是它的正确替代品。我setTargetFragment在我的设置首选项中使用已弃用的功能来创建多个首选项屏幕。为此,我最初遵循了此处的指南,该指南setTargetFragment示例中使用起来很混乱。下面是我的代码:

build.gradle (Module: app)
...
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.preference:preference:1.1.1'
...
Run Code Online (Sandbox Code Playgroud)
MainActivity.kt

class MainActivity : AppCompatActivity() {
    private lateinit var settingsButton: ImageButton

    override fun onCreate(savedInstanceState: Bundle?) {
        ...
        settingsButton = findViewById(R.id.settingsButtonMain)
        settingsButton.setOnClickListener {
            settingsClicked()
        }
        ...
    }

    private fun settingsClicked() {
        val settingsIntent = Intent(this, SettingsActivity::class.java)
        startActivity(settingsIntent)
    }
}
Run Code Online (Sandbox Code Playgroud)
SettingsActivity.kt

class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
    override fun onCreate(savedInstanceState: Bundle?) {
        ...
        supportFragmentManager.beginTransaction().replace(R.id.settings, SettingsFragment(this)).commit()
        supportFragmentManager.addOnBackStackChangedListener …
Run Code Online (Sandbox Code Playgroud)

android android-preferences android-fragments androidx

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

如何在片段类中使用底部工作表而不是活动类?

我试图在点击侦听器中使用底部工作表,但我在这一行收到错误。

BottomSheetFragment.show(getSupportFragmentManager())

无法解析方法“show(?, java.lang.String)”无法解析方法“getSupportFragmentManager()”

我想在片段类中使用底部工作表。

SubCategoryDe​​tailFragment.java

  public class SubCategoryDetailFragment extends Fragment {

        TextView txtv_sort;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View view= inflater.inflate(R.layout.fragment_sub_category_detail, container, false);
            toolbar = ((MainActivity) getActivity()).findViewById(R.id.toolbar);
            toggle = ((MainActivity) getActivity()).getToggle();
            shimmerContainer = view.findViewById(R.id.shimmer_view_container);
            recyclerView_subcatDetail = view.findViewById(R.id.recycler_view_subCategoryDetail);

           txtv_sort = view.findViewById(R.id.txtv_sort);

            toggle.setDrawerIndicatorEnabled(false);
            toggle.setHomeAsUpIndicator(R.drawable.back);
            toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    getActivity().onBackPressed();
                }
            });


         txtv_sort.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    BottomSheetFragment bottomSheetFragment = new BottomSheetFragment();
                    bottomSheetFragment.show(getSupportFragmentManager(), bottomSheetFragment.getTag());
                }
            });

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

android fragment bottom-sheet

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