我在intent中传递的另一个activity中没有更新输入值



矿山主营业务:-

var sec  =  second_activity()
var button1: Button? = null
var button2: Button? = null
var button3: Button? = null
var button4: Button? = null

button1 = findViewById<View>(R.id.button1) as Button
button2 = findViewById<View>(R.id.button2) as Button
button3 = findViewById<View>(R.id.button3) as Button
button4 = findViewById<View>(R.id.button4) as Button


button1?.setOnClickListener {
sec.input = "a"
val intent: Intent = Intent(this, second_activity::class.java)
startActivity(intent)
}
button2?.setOnClickListener {
sec.input = "b"
val intent: Intent = Intent(this, second_activity::class.java)
startActivity(intent)
}

第二个活动:-

class second_activity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
private lateinit var toolbar: Toolbar
private lateinit var mDrawerLayout: DrawerLayout
var input : String = " "

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)

//getting recyclerview from xml
val recyclerView = findViewById<RecyclerView>(R.id.recyclerView)
//adding a layoutmanager
recyclerView.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false)
//crating an arraylist to store users using the data class user
val users = ArrayList<User>()
//adding some dummy data to the list
//creating our adapter
val adapter = CustomAdapter(this , users)
//now adding the adapter to recyclerview
recyclerView.adapter = adapter
Toast.makeText(this, input , Toast.LENGTH_SHORT).show()
when(input) {
"a" ->  {
users.add(User(R.drawable.bc))
}
"b" -> {
users.add(User(R.drawable.bc))
users.add(User(R.drawable.bc))
users.add(User(R.drawable.bc))
users.add(User(R.drawable.bc))
}
}

}

我从MainActivity传递的输入值没有更新。它总是取第二个活动中出现的空白值。我也试过改变输入的位置。但没有奏效。请帮助

是否有其他方法可以从第二个活动中找到在MainActivity中单击的按钮

是的,还有另一种方法。使用intent.putExtra("requestCode", requestCode)。然后在第二个活动中,您可以使用getIntent().getExtra().getInt("requestCode")获得requestCode。

是的,您可以使用以下代码将值从一个活动传递到另一个活动,

val intent: Intent = Intent(this, SecondActivity::class.java)
intent.putExtra(name, value)
startActivity(intent)

我在下面给出了示例代码,请尝试一下。

在第一个活动中,我发送了"语言"价值。
val intent: Intent = Intent(this, SecondActivity::class.java)
intent.putExtra("language", "tamil")
startActivity(intent)

在第二个活动中,我检索了"语言"价值。

将此代码放入第二个活动onCreate()

val intent: Intent = getIntent()
var language = ""
if (intent != null) {
language = intent.getStringExtra("language")
}
println("Language : $language")

最新更新