невозможно отобразить значение из предыдущего действия - PullRequest
0 голосов
/ 08 сентября 2018

При отображении значения в textview при втором действии появляется ошибка как

объявление ожидающего члена

Это мой код для другого занятия:

   package com.example.trial.sudoku_solver
import android.app.AlertDialog
import android.content.Intent
import android.graphics.Bitmap
import android.media.MediaScannerConnection
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.os.Environment
import android.provider.MediaStore
import android.text.Editable
import android.util.Log
import android.view.View
import android.widget.*
import com.example.trial.sudoku_solver.R
import kotlinx.android.synthetic.main.activity_main.view.*
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.FileOutputStream
import java.io.IOException
import java.util.*
import kotlinx.android.synthetic.main.activity_main.*
import org.w3c.dom.Text

class AnotherActivity : AppCompatActivity() {

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


    var a: String = intent.getStringExtra("text")
    val text1: TextView = findViewById(R.id.textview) as TextView
    text1.text = intent.getStringExtra("text")

}

Это мой частичный код функции в MainActivity

private fun clickText() {
    val text1: EditText = findViewById(R.id.editText)
    if (text1 != null) {
        //Toast.makeText(this, text1.text, Toast.LENGTH_LONG).show()
        var text1 = text1.editText.toString()
        val intent = Intent(this, AnotherActivity::class.java)
        intent.putExtra("text",text1)
        startActivity(intent);
    }
}

Ответы [ 4 ]

0 голосов
/ 08 сентября 2018

Вам нужно добавить этот кусок кода в блок метода onCreate

Вы должны добавить свои исполняемые операторы внутри методов.

Таким образом, код будет выглядеть так:

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

        // add these statement inside onCreate block
        var a: String = intent.getStringExtra("text")
        val text1: TextView = findViewById(R.id.textview) as TextView
        text1.text = intent.getStringExtra("text")
    }
0 голосов
/ 08 сентября 2018

Самый простой способ сделать это:

Intent intent = new Intent(getBaseContext(), Activity2.class);
intent.putExtra("ID", sId);
startActivity(intent);

Доступ к этому намерению при следующей деятельности

String sId= getIntent().getStringExtra("ID");

Надеюсь, это поможет вам

0 голосов
/ 08 сентября 2018

8 Вам нужно позвонить intent, findViewById, а затем setText после вызова setContentView:

class AnotherActivity : AppCompatActivity() {

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

        var a: String = intent.getStringExtra("text")
        val text1: TextView = findViewById(R.id.textview) as TextView
        text1.text = intent.getStringExtra("text")
    }
}
0 голосов
/ 08 сентября 2018

В Activity нет метода settext.Вы должны установить текстовую строку на TextView следующим образом:

var a: String = intent.getStringExtra("text")
val text1 = findViewById(R.id.textview) as TextView
text1.text = a

Кроме того, когда вы пишете код в kotlin, нет необходимости использовать findViewById в действиях.Из-за синтетических свойств, представления доступны через их идентификаторы из XML-файла.Таким образом, три строки кода можно заменить следующим образом:

textview.text = intent.getStringExtra("text")

Также измените блок кода в MainActivity на:

private fun clickText() {
    val editText1: EditText = findViewById(R.id.editText)
    if (editText1 != null) {
        //Toast.makeText(this, text1.text, Toast.LENGTH_LONG).show()
        var text1 = editText1.text.toString()
        val intent = Intent(this, AnotherActivity::class.java)
        intent.putExtra("text", text1)
        startActivity(intent);
    }
}
...