我对 Android 很陌生,想制作一个简单的待办事项列表小部件
小部件按钮上的文本不会改变。 活动启动,但是一旦我在文本字段中输入内容,文本字段中的文本就不会存储在按钮中
这是我当前的代码,位于单击所述按钮时启动的活动的 onCreate 乐趣中
inside mainactivity.kt
val remoteViews: RemoteViews = RemoteViews("com.example.noteswidget", R.layout.widget)
remoteViews.setTextViewText(R.id.appwidget_Button,it.text)
inside widget.xml
<Button
android:id="@+id/appwidget_Button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top"
android:text="@string/appwidget_text" />
我对Android很陌生,我可能犯了一些菜鸟错误
根据您的代码,我不知道为什么您的逻辑是这样的。我会给你示例代码。 activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/text_print"
android:layout_width="match_parent"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
android:textSize="16sp"
android:layout_height="wrap_content"
tools:text="Sample"/>
<Button
android:id="@+id/btn_click"
android:layout_width="match_parent"
android:layout_marginTop="16dp"
android:layout_height="wrap_content"
android:text="Click it"/>
</LinearLayout>
然后在MainActivity.kt
class MainActivity : AppCompatActivity() {
//first init
private lateinit var btnClick: Button
private lateinit var textPrint: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
//assign variable with value
btnClick = findViewById<Button>(R.id.btn_click)
textPrint = findViewById<TextView>(R.id.text_print)
//do actions
btnClick.setOnClickListener {
textPrint.text = btnClick.text
}
}
}
在上面的示例中,如果您使用的话,有几种类型
findViewById
findViewById
在该示例中,当单击按钮时,文本视图将显示按钮中的文本。
但是,我建议你可以学习一下ViewBinding,以便更好的开发。因为这对你很有帮助,让你的工作更有效率。很高兴编码:)