Eigene Integereingabe

T

tomvondeek

Neues Mitglied
0
Hallo allerseits,

möchte mir ein eigenes Widget/View erstellen, weiss allerdings nicht ganz, was ich erweitern soll / wie ich herangehe.

Im Grunde möchte ich 2 Buttons und eine Textview zu einem Objekt zusammenfügen, da ich viele davon brauche.

[Button links, Anzeigesymbol "-"] [TextField, Anzeige Integer, Startwert 0] [Button rechts, anzeigesymbol "+"], bzw in Kurzdarstellung:

[-] 0 [+]
Ich denke was die Buttons machen sollen ist eindeutig O:)

Das ganze so "einfach" einzufügen ist kein Problem, allerdings würde es das Handling deutlich vereinfachen, wenn ich das ganze in eine eigene Klasse packe.

Da ich sonst ListView verwende, sollen die 3 Elemente auch nebeneinander in einer Listzeile stehen, wenn ich dieses Objekt hinzufüge.

Hat jemand eine Idee zur Umsetzung?

Das wäre großartig!

P.S. ich code das gane nur in Java, da ich UI sehr dynamisch halte, daher beschäftige ich mich 0 mit der Umsetzung in XML
P.P.S. die Methoden mit denen ich auf das clicken des Buttons reagiere und den Integerwert erhöhe/verkleinere sind kein Problem, also mir reicht ein einfacher Hinweis für den Rahmen :o)

Der ursprüngliche Beitrag von 13:38 Uhr wurde um 14:03 Uhr ergänzt:

Code:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Test
{
	
 
	private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("HelloWorldSwing");
        frame.setLayout(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        //Add the ubiquitous "Hello World" label.
        Test count1 = new Test(frame, 10,0);
        Test count2 = new Test(frame, 10,50);
        Test count3 = new Test(frame, 10,100);
        //Display the window.
        frame.pack();
        frame.setVisible(true);
        // frame.getContentPane().add(count1);
 
        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
 
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
		
    private JPanel panel;
    private JTextField txt;
    
    public Test(JFrame container, int x, int y){
	panel = new JPanel();
	panel.setBounds(x, y, 120, 40);
	new GridLayout(1, 3);
	
	JButton minus = new JButton("-");
	minus.addActionListener(new MinusActionListener());
	
	txt = new JTextField();
	txt.setColumns(2);
	txt.setHorizontalAlignment(JTextField.CENTER);
	txt.setText("0");
	
	JButton plus = new JButton("+");
	plus.addActionListener(new PlusActionListener());

	
	panel.add(minus);
	panel.add(txt);
	panel.add(plus);
	
	container.add(panel);
	
    }
    
    public int getValue(){
	return Integer.parseInt(txt.getText());
    }
    
    private class MinusActionListener implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent arg0)
	{
	    txt.setText(Integer.toString(Integer.parseInt(txt.getText())-1));
	}
	
    }
    
    private class PlusActionListener implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent arg0)
	{
	    txt.setText(Integer.toString(Integer.parseInt(txt.getText())+1));
	}
	
    }     
}

Hier das ganze einmal flott normal in Java unter Nutzung der Swing-Class verdeutlicht, ich weiss nur nicht wie ich das ganze in "AppJava" ummodelieren muss :)
 
Wenn du ein angepasste lsitview haben willsf brauchsr du eine custom listview. (Google). Da kannst du das layout dann in der xml :) einstellen.

Ich weisß nur nicht ob man da buttons bzw. Objekte einfügem kann.

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
seufz...

java programmierung funktioniert ja schon soweit eigentlich ganz gut, aber ich würde echt gerne um dieses xml schreiben drumherum kommen *g*

Das fühlt sich so... falsch... an... Naja, aber danke für den Tipp, ich werde mich mal mit den custom listviews beschäftigen, es scheint als wäre es grob das, wonach ich gesucht habe!
 
Du kannst in eclipe auch den designer verwenden. Geht auch sehr gut in verbindun mit den property eigenschaften.

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
Ich bevorzuge harte Programmierung anstelle des WYSIWYG-Editors :o)

Die nächste Frage:

Das gedöns aus dem ersten Post soll in einer ListView mehrfach vorkommen.
Das Tut es auch wunderbar. Folgendes Problem aber: unabhängig davon, welchen der Buttons ich klicke, es ändert sich nur die Integer vom ersten Element.

findViewById(R.id.label) gibt nur das erste Laben zurück. Wie kann ich denn gezielt die anderen Elemente ansprechen?
 

Ähnliche Themen

FabianDev
Antworten
5
Aufrufe
576
swa00
swa00
F
  • Fischi84
Antworten
2
Aufrufe
1.920
Fischi84
F
R
Antworten
3
Aufrufe
1.652
Ritartet
R
Zurück
Oben Unten