提问人:Puneet 提问时间:9/19/2023 最后编辑:Harsh PanchalPuneet 更新时间:9/20/2023 访问量:21
单击活动 B 中的按钮不会进入 setOnClickListener 并导航到活动 A
Clicking on button in Activity B does not go inside setOnClickListener and navigate to Activity A
问:
我正在创建一个笔记应用程序。我创建了 2 个活动,并有一个按钮,单击该按钮应保存笔记并导航到 MainActivity 并显示笔记。
binding.btnSaveNotes.setOnClickListener {
Toast.makeText(this@AddNotes, "Check Mark Clicked", Toast.LENGTH_SHORT).show()
val title = binding.editTextTitle.text.toString()
val noteDesc = binding.editTextDesc.text.toString()
if (title.isNotEmpty() || noteDesc.isNotEmpty()) {
val formatter = SimpleDateFormat("EEE, d MMM yyy HH:mm a")
note = if (isUpdate) {
Note(old_note.id, title, noteDesc, formatter.format(Date()))
} else {
Note(null, title, noteDesc, formatter.format(Date()))
}
val intent = Intent()
intent.putExtra("note", note)
setResult(Activity.RESULT_OK, intent)
finish()
} else {
Toast.makeText(this@AddNotes, "Please enter some data", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
}
我尝试将笔记应用程序更新为具有按钮/浮动操作按钮或图像图像。还添加了后退箭头。它似乎没有进入这个代码发布按钮点击。
答:
0赞
Sarah
9/20/2023
#1
你上传的代码不够用,所以我会把我之前练习过的相关代码做成和你的问题差不多。
使用用于导航到 AddNotes 活动的按钮创建 MainActivity 布局 (activity_main.xml):
<!-- activity_main.xml -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnAddNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Add Note" />
</RelativeLayout>
创建 MainActivity 类 (MainActivity.kt):
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btnAddNote.setOnClickListener {
val intent = Intent(this, AddNotes::class.java)
startActivityForResult(intent, 1)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 1 && resultCode == RESULT_OK) {
val note = data?.getSerializableExtra("note") as Note
// Handle the returned note data here and display it in the MainActivity UI.
}
}
}
创建 AddNotes 布局 (activity_add_notes.xml),其中包含 EditText 作为标题,EditText 用于说明,以及用于保存注释的按钮:
<!-- activity_add_notes.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/editTextTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Title" />
<EditText
android:id="@+id/editTextDesc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Description" />
<Button
android:id="@+id/btnSaveNotes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save" />
</LinearLayout>
创建 AddNotes 类 (AddNotes.kt):
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_add_notes.*
import java.text.SimpleDateFormat
import java.util.*
class AddNotes : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_notes)
btnSaveNotes.setOnClickListener {
val title = editTextTitle.text.toString()
val noteDesc = editTextDesc.text.toString()
if (title.isNotEmpty() || noteDesc.isNotEmpty()) {
val formatter = SimpleDateFormat("EEE, d MMM yyy HH:mm a")
val note = Note(null, title, noteDesc, formatter.format(Date()))
val intent = Intent()
intent.putExtra("note", note)
setResult(Activity.RESULT_OK, intent)
finish()
} else {
// Display an error message or handle empty fields.
}
}
}
}
创建数据类 Note 以保存您的笔记信息:
import java.io.Serializable
data class Note(
val id: Long?,
val title: String,
val description: String,
val timestamp: String
) : Serializable
我测试了它,这段代码可以工作......祝你好运。
评论