Diskuze: Android komponenta editText.Text předávání vstupní hodnoty
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Moc nerozumím tomu, co přesně chceš... ale obecně text z textview získáš pomocí zavolání metody .getText() na objektu EditText, který ale musí být předtím inicializován.
EditText editText = (EditText)findViewById(R.id.editText);
String text = editText.getText().toString();
No toto jsem potřeboval ale ještě jak to převést na int když mám nastaveno edtittext input type numberDecimal ? možná to mě dělá v tom " hokej" díky
Tak pomalu u6 mi to jde
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rok = (EditText)findViewById(R.id.editText3);
mesic = (EditText)findViewById(R.id.editText2);
den = (EditText)findViewById(R.id.editText1);
}
public void vypocet (View v) {
int[] k = new int[12];
int[] j = new int[5];
k[1] = 1; k[2] = 4; k[3] = 4; k[4] = 0; k[5] = 2; k[6] = 5; k[7] = 0;
k[8] = 3; k[9] = 6; k[10] = 1; k[11] = 4; k[12] = 6;
j[1] = 4; j[2] = 2; j[3] = 0; j[4] = 6; j[5] = 4;
String[] d = new String[7];
d[1]= "Sobota";
d[2] = "Nedele"; d[3] = "Pondeli";
d[4] = "Utery"; d[5] = "Streda"; d[6] = "Ctrvtek";
d[7] = "Patek";
int rokD= Integer.parseInt(rok.getText().toString());
int mesicD = Integer.parseInt(mesic.getText().toString());
int denD = Integer.parseInt(den.getText().toString());
dělám takovou apku do které vložíš datum¨od roku 1753 do 2199 a vypadne ti den v týdnu
String[] pole = {"Sobota", "Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek"};
Jak píše počítač770, pro práci s datem lze využít knihovny. V případě androidu asi Calendar, který ti po nastavení parametrů typu rok, měsíc a den může vrátit přímo den v týdnu a vyhneš se těm polím, které tam máš.
**Zdroják **
package com.example.kalendar;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
EditText rok,mesic,den,vys;
TextView vy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rok = (EditText)findViewById(R.id.editText3);
mesic = (EditText)findViewById(R.id.editText2);
den = (EditText)findViewById(R.id.editText1);
vys = (EditText)findViewById(R.id.editText4);
}
public void vypocet (View v) {
int[] k = new int[12];
int[] j = new int[5];
k[1] = 1; k[2] = 4; k[3] = 4; k[4] = 0; k[5] = 2; k[6] = 5; k[7] = 0;
k[8] = 3; k[9] = 6; k[10] = 1; k[11] = 4; k[12] = 6;
j[1] = 4; j[2] = 2; j[3] = 0; j[4] = 6; j[5] = 4;
String[] d = new String[7];
d[1]= "Sobota";
d[2] = "Nedele"; d[3] = "Pondeli";
d[4] = "Utery"; d[5] = "Streda"; d[6] = "Ctrvtek";
d[7] = "Patek";
int rokD= Integer.parseInt(rok.getText().toString());
int mesicD = Integer.parseInt(mesic.getText().toString());
int denD = Integer.parseInt(den.getText().toString());
int c= (int)(rokD /100)*100;
int xr = rokD - c;
int xm = (int) xr /4;
{
if ((rokD / 4) < (rokD /4)){
}
else {
k[1]= 0;k[2] =3;
}
}
int a = ((xr + xm + k[mesicD])) + (j[(int)c / 100 - 16] + denD);
int x = a - 7 * (int)(a / 7) + 1;
vys.setText(d[x]);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Do emulátoru to dostanu ale jakmile stisknu tlačítko vypocet
Chyby
02-17 09:09:16.793: D/AndroidRuntime(4372): Shutting down VM
02-17 09:09:16.798: E/AndroidRuntime(4372): FATAL EXCEPTION: main
02-17 09:09:16.798: E/AndroidRuntime(4372): Process: com.example.kalendar, PID: 4372
02-17 09:09:16.798: E/AndroidRuntime(4372): java.lang.IllegalStateException: Could not execute method of the activity
02-17 09:09:16.798: E/AndroidRuntime(4372): at android.view.View$1.onClick(View.java:3970)
02-17 09:09:16.798: E/AndroidRuntime(4372): at android.view.View.performClick(View.java:4598)
02-17 09:09:16.798: E/AndroidRuntime(4372): at android.view.View$PerformClick.run(View.java:19268)
02-17 09:09:16.798: E/AndroidRuntime(4372): at android.os.Handler.handleCallback(Handler.java:738)
02-17 09:09:16.798: E/AndroidRuntime(4372): at android.os.Handler.dispatchMessage(Handler.java:95)
02-17 09:09:16.798: E/AndroidRuntime(4372): at android.os.Looper.loop(Looper.java:135)
02-17 09:09:16.798: E/AndroidRuntime(4372): at android.app.ActivityThread.main(ActivityThread.java:5070)
02-17 09:09:16.798: E/AndroidRuntime(4372): at java.lang.reflect.Method.invoke(Native Method)
02-17 09:09:16.798: E/AndroidRuntime(4372): at java.lang.reflect.Method.invoke(Method.java:372)
02-17 09:09:16.798: E/AndroidRuntime(4372): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:836)
02-17 09:09:16.798: E/AndroidRuntime(4372): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:631)
02-17 09:09:16.798: E/AndroidRuntime(4372): Caused by: java.lang.reflect.InvocationTargetException
02-17 09:09:16.798: E/AndroidRuntime(4372): at java.lang.reflect.Method.invoke(Native Method)
02-17 09:09:16.798: E/AndroidRuntime(4372): at java.lang.reflect.Method.invoke(Method.java:372)
02-17 09:09:16.798: E/AndroidRuntime(4372): at android.view.View$1.onClick(View.java:3965)
02-17 09:09:16.798: E/AndroidRuntime(4372): ... 10 more
02-17 09:09:16.798: E/AndroidRuntime(4372): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=12; index=12
02-17 09:09:16.798: E/AndroidRuntime(4372): at com.example.kalendar.MainActivity.vypocet(MainActivity.java:31)
02-17 09:09:16.798: E/AndroidRuntime(4372): ... 13 more
02-17 09:09:20.481: I/Process(4372): Sending signal. PID: 4372 SIG: 9
Já snad nepochopím jak psát aplikace pro android tento program vyšel v takové velkém sešitu "Domluvte se s počítačem "ještě pře revolucí v basicu podařilo se mi to převést do php skriptu který mám na svém frehostingu , PHP , Delphi, C# jsem trochu pochopil ale na toto jsem asi krátký a za druhé se mi u toho nechce sedět hodiny díky
Jak jsem ti říkal. Pole (a v programování snad všechno) má indexy od 0 po velikost - 1 (v tvém případě od 0 po 11), ty se snažíš doplnit do pole hodnotu na pozici 12, což je kvůli velikosti nemožné. Pokud děláš takové "začátečnické" chyby + docela zvláštní postupy při programování (neefektivní, zdlouhavé apod.), tak bych si doporučil nejprve přečíst zdejší rubriku o Javě, viz zde: http://www.itnetwork.cz/java
Pomohlo zvýšení polí o 1 prvek už mi to fungovalo, ale chtěl jsem ještě upravit dizajn a uspořádat edittext a kdesi jsem udělal chybu viz příloha a nemohu na to přijít řádek s logu nelze dát do schránky abych si ho mohl nechat přeložit pomůže mi někdo ? díky
Zobrazeno 10 zpráv z 10.