Что ж, у меня проблема (я использую kotlin), мне нужно перейти от Menu_cliente к create_clients_upd с информацией из строки, по которой я щелкаю, я хочу переходите от макета к другому, щелкая в программе recyclerView (элемент «вектор», только иллюстративный), и при щелчке по нему было необходимо указать данные в правильном поле, чтобы можно было изменить информацию (обновить).
это работало по-другому (кроме диалогового окна), но мне нужно улучшить этот способ, и иметь возможность обновлять и удалять из create_clients_upd ..
обновление 2
обновление выполнено
Обновление кода объекта
@Parcelize class clientes (
var codigo_cliente: Int = 0,
var nome_cliente: String? = "",
var morada_cliente: String? = "",
var localidade_cliente: String? = "",
var postal_cliente: String? = "",
var contribuinte_cliente: String? = "",
var telefone_cliente: String? = "",
var pais_cliente: String? = ""): Parcelable
2020-03-06 16:39:42.342 10121-10121/com.example.jetpackteste E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.jetpackteste, PID: 10121
kotlin.NotImplementedError: An operation is not implemented: not implemented
at com.example.jetpackteste.Dados.IS4.onUpgrade(IS4.kt:53)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:417)
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:341)
at com.example.jetpackteste.Dados.IS4.getClient(IS4.kt:62)
at com.example.jetpackteste.Menu_Clientes.verClientes(Menu_Clientes.kt:84)
at com.example.jetpackteste.Menu_Clientes.onCreate(Menu_Clientes.kt:75)
at android.app.Activity.performCreate(Activity.java:7802)
at android.app.Activity.performCreate(Activity.java:7791)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Адаптер
class clientesAdapter(mCtx: Context, val clientes: ArrayList<clientes>) :
RecyclerView.Adapter<clientesAdapter.ViewHolder>() {
val mCtx = mCtx
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val IDcliente_view = itemView.IDcliente_view
val Name_view = itemView.Name_view
//val delete_button = itemView.delete_button
val info_view = itemView.info_view
}
override fun onCreateViewHolder(p0: ViewGroup, p1: Int): clientesAdapter.ViewHolder {
val v = LayoutInflater.from(p0.context).inflate(R.layout.menu_client_app, p0, false)
return ViewHolder(v)
}
// cria linhas consoante a criação dos dados
override fun getItemCount(): Int {
return clientes.size
}
override fun onBindViewHolder(p0: clientesAdapter.ViewHolder, p1: Int) {
val client: clientes = clientes[p1]
p0.IDcliente_view.text = client.codigo_cliente.toString()
p0.Name_view.text = client.nome_cliente
}
}
RecyclerView
private fun verClientes(){
val clienteslista = IS4.getClient(this)
val adapter = clientesAdapter(this,clienteslista)
val rv : RecyclerView = findViewById(R.id.rv)
rv.layoutManager = LinearLayoutManager(this, LinearLayout.VERTICAL,false) as RecyclerView.LayoutManager
rv.adapter = adapter
}
override fun onResume() {
verClientes()
super.onResume()
}
База данных
fun update_cliente(id: String, codigo_cliente: Int, nome_cliente: String, morada_cliente: String, localidade_cliente: String, postal_cliente: String, contribuinte_cliente: String, telefone_cliente: String, pais_cliente: String) : Boolean {
val db = this.writableDatabase
val contentValues = ContentValues()
var result = false
contentValues.put(DB_Cliente_Codigo,codigo_cliente)
contentValues.put(DB_Cliente_Nome,nome_cliente)
contentValues.put(DB_Cliente_Morada,morada_cliente)
contentValues.put(DB_Cliente_Localidade,localidade_cliente)
contentValues.put(DB_Cliente_Postal,postal_cliente)
contentValues.put(DB_Cliente_Contribuinte,contribuinte_cliente)
contentValues.put(DB_Cliente_Telefone,telefone_cliente)
contentValues.put(DB_Cliente_Pais,pais_cliente)
try {
db.update(CLIENTES_TABLE_NAME, contentValues, "$DB_Cliente_Codigo = ?", arrayOf(id))
result = true
} catch (e : Exception){
Log.e(ContentValues.TAG, "Erro ao atualizar")
result = false
}
return result
}
create_clients_upd edittext var
IDinput_upd
Nomeinput_upd
Moradainput_upd
Localidadeinput_upd
cod1_upd
Contribuinteinput_upd
Telefoneinput_upd
Zonainput_upd