Kotlin in Java übersetzen

Liked

Ensign
Registriert
Sep. 2011
Beiträge
238
Hallo,

ich bräuchte eure Hilfe. Ich versuche gerade Kotlin in Java für ein Android zu übersetzen. Ich hänge dabei an einer Zeile..
val intent = Intent(applicationContext, BarcodeCaptureActivity::class.java)
Was wäre das Äquivalent in Java?

Kotlin Code:
Code:
package com.varvet.barcodereadersample

import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log
import android.widget.Button
import android.widget.TextView
import com.google.android.gms.common.api.CommonStatusCodes
import com.google.android.gms.vision.barcode.Barcode
import com.varvet.barcodereadersample.barcode.BarcodeCaptureActivity
import java.io.BufferedReader
import java.io.InputStreamReader
import java.net.HttpURLConnection
import java.net.URL

class MainActivity : AppCompatActivity() {

    private lateinit var mResultTextView: TextView

    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        mResultTextView = findViewById(R.id.result_textview)

        findViewById<Button>(R.id.scan_barcode_button).setOnClickListener {
            val intent = Intent(applicationContext, BarcodeCaptureActivity::class.java)
            startActivityForResult(intent, BARCODE_READER_REQUEST_CODE)
        }
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        if (requestCode == BARCODE_READER_REQUEST_CODE) {
            if (resultCode == CommonStatusCodes.SUCCESS) {
                if (data != null) {
                    val barcode = data.getParcelableExtra<Barcode>(BarcodeCaptureActivity.BarcodeObject)
                    val p = barcode.cornerPoints
                    mResultTextView.text = barcode.displayValue
;
                } else
                    mResultTextView.setText(R.string.no_barcode_captured)
            } else
                Log.e(LOG_TAG, String.format(getString(R.string.barcode_error_format),
                        CommonStatusCodes.getStatusCodeString(resultCode)))
        } else
            super.onActivityResult(requestCode, resultCode, data)
    }

    companion object {
        private val LOG_TAG = MainActivity::class.java.simpleName
        private val BARCODE_READER_REQUEST_CODE = 1
    }

}

Das was ich bisher nach Java übersetzt habe:
Code:
package com.varvet.barcodereadersample;

import android.content.Intent;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.google.android.gms.common.api.CommonStatusCodes;
import com.google.android.gms.vision.barcode.Barcode;
import com.varvet.barcodereadersample.barcode.BarcodeCaptureActivity;



public class MainActivityy extends AppCompatActivity{

    private TextView mResultTextView;
    int BARCODE_READER_REQUEST_CODE;
    String LOG_TAG;

    @Override
    protected void onCreate( @Nullable Bundle savedInstanceState ) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mResultTextView = findViewById(R.id.result_textview);

        findViewById(R.id.scan_barcode_button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick( View view ) {
/** -------------> An der Zeile darunter hänge ich ... <------------ **/
                Intent intent = new Intent(/** fehlt **/ );
                startActivityForResult(intent, BARCODE_READER_REQUEST_CODE);
            }
        });
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        if(requestCode == BARCODE_READER_REQUEST_CODE){
            if(resultCode == CommonStatusCodes.SUCCESS){
                if(data != null){
                    Barcode barcode = data.getParcelableExtra(BarcodeCaptureActivity.BarcodeObject);
                    mResultTextView.setText(barcode.displayValue);
                }
                else {
                    mResultTextView.setText("No Barcode Captured!");
                }
            }
            else{
                Log.e(LOG_TAG, String.format("Error Reading Barcode: %s", CommonStatusCodes.getStatusCodeString(resultCode)));
            }
        }
        else{
            super.onActivityResult(requestCode, resultCode, data);
        }
    }
}
Ergänzung ()

Lösung:
Intent intent = new Intent(getApplicationContext(), BarcodeCaptureActivity.class);
war doch nicht so schwer :)
 
Zuletzt bearbeitet:
Wenn du ganz genau sein willst, müsste dein intent noch final sein.

Ansonsten ist :: der der implizite Call einer Methodenreferenz.
 
Zurück
Oben