我的计划是制作一个回收站列表视图,这是我的最佳建议,然后创建一个可单击的东西列表,例如电子邮件列表,但是我想要一个按钮来创建发送给自己的“电子邮件”,创建按钮并将它们添加到列表中。
目前,我试图理解https://www.example.com/{HostUrl}}{{^HostUrl}}https://xyz.abccdn.com/{{/HostUrl}}370x208{{OriginalImgPath}}{{^OriginalImgPath}}/statics/grey.gif{{/OriginalImgPath}}
,listView
,adapter
等。因此,我尝试通过button
函数创建按钮。
欢迎任何建议或其他帮助!
到目前为止,我仍然知道如何制作简单的列表,简单的按钮,简单的onClick
,尽管我仍然有些疑问,例如为什么需要布局。
谢谢!
arrayAdapter
activity_button_example.xml
package app.helloworld.dashimir.com.buttoncreate
import android.graphics.Color
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.constraint.ConstraintLayout
import android.view.View
import android.widget.Button
import kotlinx.android.synthetic.main.activity_button_example.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
fun criarBotao (view: View) {
val button = Button(this)
val constraintLayout = findViewById<ConstraintLayout>(R.id.constraintLayout)
button.layoutParams = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT)
button.text = "Click me"
button.setOnClickListener(View.OnClickListener {
button.text = "You just clicked me"
})
button.setBackgroundColor(Color.GREEN)
button.setTextColor(Color.RED)
constraintLayout.addView(button)
}
}
Logcat
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/constraintLayout"
android:layout_height="match_parent">
</android.support.constraint.ConstraintLayout>
我不知道为什么将其设为null,因为我将其链接到 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.constraint.ConstraintLayout.addView(android.view.View)' on a null object reference
文件。不是吗?
答案 0 :(得分:0)
对于用户上的创建按钮,请单击:
如果您使用acitivity_main布局中的约束布局ID,此代码将起作用。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) // This uses your Activity_main Layout
val button = Button(this)
button.setText("HEllo")
val constraintLayout = findViewById<ConstraintLayout>(R.id.constraintLayout)
val buttonlayout = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT)
constraintLayout.addView(button, buttonlayout)
button.setBackgroundColor(Color.GREEN)
button.setTextColor(Color.RED)
button.setOnClickListener({
button.setText("Ok")
})
}
}
或者您可以使用此方法:
只需将setContentView更改为您的布局
setContentView(R.layout.btn)