1

我不知道 kotlin,我已经在 java 中转换了 kotlin 代码并粘贴了该代码,但是读取该字节码有很多混乱。谁能帮助我,请转换此代码。

请将此代码转换为java https://github.com/supercoffee/seven-segment-view/blob/master/sevensegmentview.example/src/main/java/com/bendaschel/sevensegmentview/example/MainActivity.kt

package com.bendaschel.sevensegmentview.example

import android.graphics.Color
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.LinearLayout
import com.bendaschel.example.R
import com.bendaschel.sevensegmentview.SevenSegmentView


class MainActivity : AppCompatActivity() {

    private lateinit var sv: SevenSegmentView

    private lateinit var colorPicker: LinearLayout

    private val colors = listOf<Int>(Color.GREEN, Color.BLUE, Color.RED, Color.MAGENTA, Color.YELLOW)

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

        sv = findViewById(R.id.display) as SevenSegmentView

        sv.setOnClickListener {
            val next = (sv.currentValue + 1) % 10
            sv.currentValue = next
        }

        colorPicker = findViewById(R.id.color_picker) as LinearLayout
        colors.forEach { color ->
            val button = layoutInflater.inflate(R.layout.color_picker_item, colorPicker, false)
            button.setOnClickListener {
                sv.onColor = color
                sv.offColor = Color.argb(50, Color.red(color), Color.green(color), Color.blue(color))
            }
            button.setBackgroundColor(color)
            colorPicker.addView(button)
        }
    }
}
4

3 回答 3

1

我已经编写了基本代码,您可以将其提升到一个新的水平。在这里你必须实现你的 onclick 监听器和 for 循环

public class temp extends AppCompatActivity {

    SevenSegmentView sv;
    LinearLayout colorPicker;

  Integer[] colors ={Color.GREEN, Color.BLUE, Color.RED, Color.MAGENTA, Color.YELLOW};

);

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sv = (SevenSegmentView) findViewById(R.id.display);
        colorPicker = (LinearLayout)findViewById(R.id.color_picker);

 sv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int next = (sv.currentValue + 1) % 10;
                    sv.currentValue = next;
                }
            });
      for (Integer color: colors) {
        Button button = getLayoutInflater().inflate(R.layout.color_picker_item, colorPicker, false);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sv.onColor = color;
                sv.offColor = Color.argb(50, Color.red(color), Color.green(color), Color.blue(color));
            }
        }); 

        button.setBackgroundColor(color);
        colorPicker.addView(button);

    }
}
于 2019-11-29T12:06:53.123 回答
1

我认为应该是这样,由你来改变,这取决于你的需要。

class MainActivity extends AppCompatActivity {

        private SevenSegmentView sv;

        private LinearLayout colorPicker;


        Integer[] colors ={Color.GREEN, Color.BLUE, Color.RED, Color.MAGENTA, Color.YELLOW};

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main)

            sv = (SevenSegmentView) findViewById(R.id.display);

            sv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int next = (sv.getCurrentValue() + 1) % 10;
                    sv.setCurrentValue(next);
                }
            });

            colorPicker = findViewById(R.id.color_picker);

            for (Integer color: colors) {
                Button button = getLayoutInflater().inflate(R.layout.color_picker_item, colorPicker, false);
                button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        sv.setOnColor(color);
                        sv.setOffColor(Color.argb(50, Color.red(color), Color.green(color), Color.blue(color)));
                    }
                });
                button.setBackgroundColor(color);
                colorPicker.addView(button);
            }
        }
    }
于 2019-11-29T12:12:42.660 回答
-1
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    List<Integer> colors = new ArrayList<Integer>() {{
        add(Color.GREEN);
        add(Color.BLUE);
        add(Color.WHITE);
    }};

    LinearLayout colorPicker;

    SevenSegmentView  sv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);


         colorPicker = (LinearLayout) findViewById(R.id.color_picker);
          sv = (SevenSegmentView) findViewById(R.id.display);
        sv.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v)
            {
                //DO SOMETHING! 
            }
        });

        for (Integer color : colors) {
            Button myButton = new Button(this);
            myButton.setText("Color");


            LayoutInflater inflater = LayoutInflater.from(this); // 1
            myButton = inflater.inflate(R.layout.color_picker_item, colorPicker, false);

            myButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    //DO SOMETHING! 
                }
            });
            myButton.setBackgroundColor(color)
            colorPicker.addView(myButton);


        }
    }
于 2019-11-29T12:26:48.377 回答