Erst mal ein ganz freundlich Hallo,
dann hoffe ich das ich meine Frage im richtigen Forum stelle.
Dann sollte ich vielleicht noch erwähnen das ich erst seit 3 Monaten durch Selbststudium mit Java und Android arbeite also bitte ich um ein bisschen nachsicht.
So nun mal zu meinem Problem.
ich habe mir ein Programm geschrieben mit dem ich aus einer CSV Datei daten auslese und die Überschriften dann in Buttens als Text zuweise.
Ich habe auch 2 feste Buttons die ich schon über den onClickListener (Activity als Listener) abfrage. Soweit so gut.
Meine frage nun ist wie kann ich einen onClickListener für die im Code erzeugten Buttons anlegen, ich gebe ihnen ja mit .setId eine int iD.
[CODE lang="java" highlight="43-55"]public class DataInputActivity extends AppCompatActivity implements View.OnClickListener {
private static final int requCode = 7;
private List csvReaded = new ArrayList();
private int iDZaehler =0;
private String[] spalten;
private int spaltenAnzahl = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data_input);
Button bTSuchen = findViewById(R.id.bTSuchen);
Button bTHinzufuegen = findViewById(R.id.bTHinzufuegen);
bTSuchen.setOnClickListener(this);
bTHinzufuegen.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bTSuchen:
goToSuchen();
return;
case R.id.bTHinzufuegen:
return;
default:
return;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.data_input_menu, menu);
return super.onCreateOptionsMenu(menu);
}
public Button erzeugeButton(String text, int id){
LinearLayout.LayoutParams lllp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,200);
lllp.setMargins(10,10,10,0);
Button button = new Button(getApplicationContext());
button.setLayoutParams(lllp);
button.setGravity(Gravity.CENTER);
button.setText(text);
button.setBackgroundColor(Color.GRAY);
button.setTextSize(TypedValue.COMPLEX_UNIT_SP,20);
button.setId(id);
return button;
}
public void erweitereLL(){
LinearLayout linearLayout = findViewById(R.id.dA_LLv);
for (int i = 0;i <= spalten.length-1;i++){
linearLayout.addView(erzeugeButton(spalten, i));
}
}[/CODE]
Währe echt super wenn mir jemand einen tip oder einen link zu einer Seite geben könnte die sich mit dem Thema beschäftigt.
dann hoffe ich das ich meine Frage im richtigen Forum stelle.
Dann sollte ich vielleicht noch erwähnen das ich erst seit 3 Monaten durch Selbststudium mit Java und Android arbeite also bitte ich um ein bisschen nachsicht.
So nun mal zu meinem Problem.
ich habe mir ein Programm geschrieben mit dem ich aus einer CSV Datei daten auslese und die Überschriften dann in Buttens als Text zuweise.
Ich habe auch 2 feste Buttons die ich schon über den onClickListener (Activity als Listener) abfrage. Soweit so gut.
Meine frage nun ist wie kann ich einen onClickListener für die im Code erzeugten Buttons anlegen, ich gebe ihnen ja mit .setId eine int iD.
[CODE lang="java" highlight="43-55"]public class DataInputActivity extends AppCompatActivity implements View.OnClickListener {
private static final int requCode = 7;
private List csvReaded = new ArrayList();
private int iDZaehler =0;
private String[] spalten;
private int spaltenAnzahl = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data_input);
Button bTSuchen = findViewById(R.id.bTSuchen);
Button bTHinzufuegen = findViewById(R.id.bTHinzufuegen);
bTSuchen.setOnClickListener(this);
bTHinzufuegen.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bTSuchen:
goToSuchen();
return;
case R.id.bTHinzufuegen:
return;
default:
return;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.data_input_menu, menu);
return super.onCreateOptionsMenu(menu);
}
public Button erzeugeButton(String text, int id){
LinearLayout.LayoutParams lllp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,200);
lllp.setMargins(10,10,10,0);
Button button = new Button(getApplicationContext());
button.setLayoutParams(lllp);
button.setGravity(Gravity.CENTER);
button.setText(text);
button.setBackgroundColor(Color.GRAY);
button.setTextSize(TypedValue.COMPLEX_UNIT_SP,20);
button.setId(id);
return button;
}
public void erweitereLL(){
LinearLayout linearLayout = findViewById(R.id.dA_LLv);
for (int i = 0;i <= spalten.length-1;i++){
linearLayout.addView(erzeugeButton(spalten, i));
}
}[/CODE]
Währe echt super wenn mir jemand einen tip oder einen link zu einer Seite geben könnte die sich mit dem Thema beschäftigt.