Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从片段的参数获取数据_Java_Android_Android Fragments_Kotlin_Android Activity - Fatal编程技术网

Java 从片段的参数获取数据

Java 从片段的参数获取数据,java,android,android-fragments,kotlin,android-activity,Java,Android,Android Fragments,Kotlin,Android Activity,如何从片段的参数中获取数据?我调用MainActivity中的片段 函数注册CallFragment() 并将所有数据放在frgament的参数中,指向同伴对象 fun getNewInstance(args: Bundle): Registration_second{ val registrationSecond = Registration_second() registrationSecond.arguments = args

如何从片段的参数中获取数据?我调用MainActivity中的片段 函数注册CallFragment()

并将所有数据放在frgament的参数中,指向同伴对象

    fun getNewInstance(args: Bundle): Registration_second{
            val registrationSecond = Registration_second()
            registrationSecond.arguments = args
            return  registrationSecond
        }
    }
如何从伴星对象获取这些数据

所以,我找到了一些东西,并在我的应用程序中执行 在这个函数中

fun RegistrationCallFragment(){

    fun RegistrationCallFragment(){
        //val extras = getIntent().getExtras();
        //if(extras != null) {
            //val s =extras?.getString("phone", "")
            val bundle = Bundle()
            bundle.putString("phone",
                FragmentManager.findFragment<SecondFragment>(View(this)).view?.findViewById<EditText>(R.id.phone_signup)?.text.toString()
            )
            bundle.putString("email",
                FragmentManager.findFragment<SecondFragment>(View(this)).view?.findViewById<EditText>(R.id.email_signup)?.text.toString()
            )
            bundle.putString("password",
                FragmentManager.findFragment<SecondFragment>(View(this)).view?.findViewById<EditText>(R.id.pasword_signup)?.text.toString()
            )

            Registration_second.getNewInstance(args = bundle)


        //}
    }

日志


在您的
注册中
fragment
onCreate
方法从参数获取数据,如下代码所示:

  override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        arguments?.let {

                   val phone = it.getStringExtra("phone")
                   val email = it.getStringExtra("email")
                   val password = it.getStringExtra("passsword")
         }       
    }


在膨胀片段布局之前,移除正在显示的吐司
bundle.putString("phone",
                FragmentManager.findFragment<SecondFragment>(View(this)).view?.findViewById<EditText>(R.id.phone_signup)?.text.toString()
            )
        import android.content.Intent
    import android.os.Bundle
    import android.util.Log
    import android.view.View
    import android.widget.EditText
    import android.widget.Toast
    import androidx.appcompat.app.AppCompatActivity
    import androidx.fragment.app.FragmentManager
    import androidx.navigation.fragment.NavHostFragment.findNavController
    import androidx.navigation.fragment.findNavController


    class MainActivity : AppCompatActivity() {

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
        }
        fun toastMe(Str: String) {
            val myToast = Toast.makeText(this,Str, Toast.LENGTH_SHORT)
            myToast.show()
        }
        fun RegistrationCallFragment(){

                val bundle = Bundle()
                bundle.putString("phone",
                    FragmentManager.findFragment<SecondFragment (View(this)).view?.findViewById<EditText>(R.id.phone_signup)?.text.toString()
            )
                bundle.putString("email",
                    FragmentManager.findFragment<SecondFragment>(View(this)).view?.findViewById<EditText>(R.id.email_signup)?.text.toString()
                )
                bundle.putString("password",
                    FragmentManager.findFragment<SecondFragment>(View(this)).view?.findViewById<EditText>(R.id.pasword_signup)?.text.toString()
                )

                Registration_second.getNewInstance(args = bundle)
        }

    }

    <EditText
            android:id="@+id/phone_signup"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:hint="@string/phone"
            android:textColorHint="@color/grey"
            android:textColor="@color/black"
            android:background="@drawable/input_text"
            android:layout_gravity="center"
            android:layout_marginBottom="85dp"
            android:gravity="center"
            android:ems="10"
            android:inputType="phone"
            />
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment

        //val extras = getIntent()?.getExtras();
        //if(extras != null) {
        //    val phone = extras.getString("phone", "")
        //    val email = extras.getString("email", "")
        //    val password = extras.getString("password", "")
        //return inflater.inflate(R.layout.fragment_registration_second, container, false)

        val phone = arguments?.getString("phone", "")
        val email = arguments?.getString("email", "")
        val password = arguments?.getString("password", "")
        Log.d("PHONE BLYAT", phone+email+password+"THis")
        print(phone+email+password)
        val activ = activity
        (activ as MainActivity).toastMe(phone.toString())
        return inflater.inflate(R.layout.fragment_registration_second, container, false)
    }
  override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        arguments?.let {

                   val phone = it.getStringExtra("phone")
                   val email = it.getStringExtra("email")
                   val password = it.getStringExtra("passsword")
         }       
    }