package it372.dynamicwidgets; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { // Define instance variables. private int numWords=5, wordIndex=0; private LinearLayout layout; private String[ ] words = {"one", "two", "three", "four", "five"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Create LinearLayout object. layout = findViewById(R.id.linear_layout); // Instantiate widgets final TextView txtWord = new TextView(this); final Button btnNextWord = new Button(this); // Set text in widgets txtWord.setText("zero"); btnNextWord.setText("NEXT WORD"); // Set textSize for widgets txtWord.setTextSize(24); btnNextWord.setTextSize(24); // Set layout parameters for widgets LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(50, 50, 0, 0); txtWord.setLayoutParams(params); btnNextWord.setLayoutParams(params); // Set color of TextView widget to maroon. txtWord.setTextColor(Color.parseColor("#FF800000")); // Place widgets in LinearLayout (important!) layout.addView(txtWord); layout.addView(btnNextWord); // Set onListener for button using // Method 4 (anonymous lambda method). btnNextWord.setOnClickListener( view -> { txtWord.setText(words[(wordIndex++ % numWords)]); }); // Set onClickListener for button using // Method 3 (anonymous event listener class). /* btnNextWord.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { txtWord.setText(words[wordIndex++ % numWords]); } }); */ } }