Textfelder - Text ändern

  • Antworten:26
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 13

28.03.2014, 19:40:32 via Website

Ich möchte, dass der Benutzer Text in ein Textfeld eingibt und ein Dropdown menü (Spinner). Wenn er auf einen Button drückt, wird der Inhalt dann verarbeitet.
Wie kann ich das Textfeld und das Dropdownmenü auslesen und anschließend auf Knopfdruck den Verarbeiteten Text wieder ins Textfeld zurück schreiben?

gruß
AndroidDev

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.170

28.03.2014, 19:46:55 via Website

Was hast du denn bis jetzt?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 13

28.03.2014, 20:31:19 via Website

Im wesentlichen habe ich eine Activity und ein layout mit einem textfeld, spinner und button.

Antworten
  • Forum-Beiträge: 13

28.03.2014, 20:43:05 via Website

public class myActivity extends Activity {
/** Called when the activity is first created. */
private EditText Textarea;
private Button Button01;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Textarea=(EditText) findViewById(R.id.Textarea);
Button01=(Button) findViewById(R.id.Button01);
String text=Textarea.setText(R.id.Textarea);
char ch;
textarea.addTextChangedListener(new TextWatcher(){
@Override
public void onTextChanged(CharSepuence s, int start, int before, int count){
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after){
}
@Override
public void afterTextChanged(Editible s)
}
}
}

Das habe ich in einem Android buch gefunden.
Es macht aber nicht wirklich sinn und ich weiß auch nicht, wie ich den textinhalt in einer variable speichern kann (string).
Wichtig ist auch das Schreiben(Textinhalt ändern)

Antworten
  • Forum-Beiträge: 13

28.03.2014, 20:45:52 via Website

muss es protected void sein oder kann es auch public void sein?

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.170

28.03.2014, 20:47:28 via Website

Ich weiss nicht was du meinst

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 13

28.03.2014, 20:49:18 via Website

EditText myText = (EditText) this.findViewById(R.id.myTextField);

// Setting the text:
myText.setText( "Hello World!" );

// "Reading" the text (printing it to stdout):
System.out.println( myText.getText() );

Ich dachte System.out.print funktioniert nur in Konsolenprogrammen am Computer.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.170

28.03.2014, 20:50:46 via Website

Ne aber es wird dir nur im Debugmodus in LogCat ausgegeben.
D.h als Debugmeldung oder so reicht es aus.
Sonst kannst du auch eine ToastMessage auf dem Handy direkt anzeigen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 13

28.03.2014, 21:03:47 via Website

1public class MainActivity extends Activity {
2
3 private Button btn;
4 private EditText edit;
5 private Spinner spinner;
6
7 @Override
8 protected void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.layout_main);
11
12 btn = (Button) findViewById(R.id.button);
13 edit = (EditText) findViewById(R.id.edit_message);
14 spinner = (Spinner) findViewById(R.id.spinner);
15
16 btn.setOnClickListener(new View.OnClickListener() {
17 public void onClick(View view) {
18 Log.v("EditText", edit.getText().toString());
19 Log.v("Spinner", spinner.getSelectedItem().toString());
20 }
21 });
22
23 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.title_type, android.R.layout.simple_spinner_item);
24 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
25 spinner.setAdapter(adapter);
26 }
27}
stackoverflow.com/questions/13585664/read-a-text-value-and-spinner-value/13585778#13585778

Das sieht eigentlich ganz gut aus, aber wofür braucht man Log? was macht es?

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.170

28.03.2014, 21:07:27 via Website

Da wird halt alles was du willst reingeschrieben, für debugzwecke etc.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 13

28.03.2014, 21:11:20 via Website

Ich möchte keine Ausgabe für DebugZwecke, sondern nur das textfeld auslesen, an eine varable übrgeben, verabeiten und in das textfeld zurückscreiben.

bytheway: kannst du eine gute Lektüre für Android programmierung empfehlen?

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.170

28.03.2014, 21:25:52 via Website

Du hast eine EditText. Dann suchst du diese mittels findViewById im Layout.
Dann kannst du ggf. mittels EditText#getText() den text bekommen.
genauso beim set.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 13

28.03.2014, 21:26:47 via Website

Bisher sieht es folgendermaßen aus:
1public class myActivity extends Activity {
2 /** Called when the activity is first created. */
3 private EditText Textarea;
4 private Button Button01;
5 private Spinner select;
6 @Override
7 public void onCreate(Bundle savedInstanceState) {
8 super.onCreate(savedInstanceState);
9 setContentView(R.layout.main);
10 Button01 = (Button) findViewById(R.id.Button01);
11 Textarea = (EditText) findViewById(R.id.Textarea);
12 select = (Spinner) findViewById(R.id.select);
13 Button01.setOnClickListener(new View.OnClickListener(){
14 string text=Textarea;
15
16 }
17 }

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.170

28.03.2014, 21:28:31 via Website

String text = Textarea.getText();

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 13

28.03.2014, 21:38:14 via Website

Type mismatch: cannot convert from Editable to String
The type new View.OnClickListener(){} must implement the inherited abstract method View.OnClickListener.onClick(View)


Es wird vorgeschlagen String in Editible zu ändern, das macht aber keinen Sinn.
Außerdem wird View.OnClickListener nicht rivhtig erkannt.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.170

28.03.2014, 22:06:32 via Website

Wie sieht der Code denn aus?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten

Empfohlene Artikel