Android
Java: create view event at runtime
Variant 1
Separate
definition
Create the
event with new View.OnClickListener
View.OnClickListener
on_Button_clicked = new View.OnClickListener()
{
public void onClick(View v) {
show_Messagebox("event
View.OnClickListner on_Button_clicked", "event
clicked");
}
};
|
And then
assign it to a new element in Java code
button1.setOnClickListener(on_Button_clicked);
|
2.Variante
Inline definition
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View
v) {
show_Messagebox("new View.OnClickLIsterner()", "onClick_event");
}
});
|
Complete code example
MainActivity.java
under app / java
Android
Java
package com.codedocu.myapplication;
import
android.app.AlertDialog;
import
android.graphics.Color;
import
android.support.v7.app.AppCompatActivity;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.Button;
import
android.widget.LinearLayout;
import
android.widget.RelativeLayout;
public
class MainActivity
extends
AppCompatActivity {
//----------------------<
Activity >----------------------
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
create_Buttons();
}
public void create_Buttons()
{
//------------<
create_Buttons() >------------
//< get_Layout >
LinearLayout
root_Panel= findViewById(R.id.root_Layout);
//< get_Layout >
//--< Element1 >--
Button button1=new Button(this);
button1.setText("Button 1");
button1.setTag("Button1"); //*=name
button1.setBackgroundColor(Color.YELLOW);
button1.setOnClickListener(on_Button_clicked);
//< add >
root_Panel.addView(button1);
//</ add >
//--</ Element1 >--
//--< Element2 >--
//*Inline-Event
Button button2=new Button(this);
button2.setText("Button 2");
button2.setTag("Button2");
button2.setBackgroundColor(Color.RED);
button2.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
show_Messagebox("new
View.OnClickLIsterner()", "onClick_event");
}
});
//< add >
root_Panel.addView(button2);
//</ add >
//--</ Element1 >--
//------------</
create_Buttons() >------------
}
//===================<
region: events >===================
View.OnClickListener on_Button_clicked = new View.OnClickListener()
{
public void onClick(View v) {
show_Messagebox("event
View.OnClickListner on_Button_clicked", "event
clicked");
}
};
//===================</
region: events >===================
//============< region: system
>==============
public void show_Messagebox(CharSequence Message_Text, CharSequence Title) {
//--------------<
fp_Messagebox() >----------------
//< Message erstellen >
AlertDialog.Builder
msg = new
AlertDialog.Builder(this);
msg.setTitle(Title);
msg.setMessage(Message_Text);
msg.setCancelable(true);
//</ Message
erstellen >
//< anzeigen >
AlertDialog msgDialog
= msg.create();
msgDialog.show();
//</ anzeigen >
//--------------</
fp_Messagebox() >----------------
}
//=============</
region: system >=============
//===================</ Activity
>======================
}
|
The
associated activity
Under app /
res / layout / activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root_Layout"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
>
</LinearLayout>
|