1

I don't know kotlin, I had convert the kotlin code in java and paste that code but there is lots of confusion to read that bytecode. can anyone help me, please to convert this code.

please convert this code in 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)
        }
    }
}
Angel Koh
  • 12,479
  • 7
  • 64
  • 91
rachna
  • 124
  • 8

3 Answers3

1

I have written the basic code, Its upto you to take it to next level. Here you have to implement your onclick listner and for loop

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);

    }
}
Vinay Jayaram
  • 1,030
  • 9
  • 29
  • Hey you can check this link that's code working perfectly with kotlin code but i want that code in java and i want to display seven segment for the weight coming from bluetooth – rachna Nov 29 '19 at 12:18
  • @vinay, cool that you copie past my solution in your edit, just one thing, I did a mistake on Integer[] colors = new ArrayList<>( Arrays.asList(Color.GREEN, Color.BLUE, Color.RED, Color.MAGENTA, Color.YELLOW) ); :) – Walid Nov 29 '19 at 12:19
  • @Walid Wanted to get things better... Happy coding, However i had upvoted your answer :-) – Vinay Jayaram Nov 29 '19 at 12:22
  • @vinay, thanks :), I meant you have to correct that line. – Walid Nov 29 '19 at 12:27
1

I think this is how it should be, it's up to you to change, It depends on your needs.

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);
            }
        }
    }
Walid
  • 700
  • 2
  • 10
  • 29
  • see there is two method related to currentValue one is getter and other one is setter which is confuse me – rachna Nov 29 '19 at 12:22
  • the variable or methods whatever they in both onclick, not import showing i don't under its variable of method – rachna Nov 29 '19 at 12:30
  • thnx but it's not helpfull for me i want to set this seven segment on my text,on which value is setting is float – rachna Nov 29 '19 at 12:46
-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);


        }
    }