さて、私は同じことについて他の大量の質問を検索しましたが、どういうわけかそれらの解決策のどれも私の問題にはうまくいきませんでした。これが私の問題です。EditTextから文字列にテキストを取得する必要があるとすぐにAndroidアプリがクラッシュします。私は私の「メイン」を持っています-ここでの活動:
package ign.test.fre;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class testfre extends Activity {
public static String cv = "";
public static String cm = "";
public static String cz = "";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//OTHER DEFINITIONS
EditText ev = (EditText) findViewById(R.id.v);
final Spinner em =(Spinner) findViewById(R.id.m);
final Spinner ez = (Spinner) findViewById(R.id.z);
final Button ee = (Button) findViewById(R.id.GO);
//LOTS OF SPINNER STUFF
ee.setOnClickListener(new AdapterView.OnClickListener() {
public void onClick(View arg0) {
if(initialsetup == false){
enter = true;
run();
}
}
});
ev.setOnKeyListener(new AdapterView.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
int key = event.getKeyCode();
if(key == KeyEvent.KEYCODE_ENTER){
enter = true;
}
return false;
}
});
initialsetup = false;
}
public void run(){
if(enter == true){
Calc.Test0();
Calc.Test1_se();
Calc.Test2_etre();
Calc.Test3_irr();
if(Test3_irr == false){
//MORE CODE
textview6.setText("" + ausgabezeile[5]);
}
}
}
私のCalc-Classは次のようになります:package ign.test.fre;
public class Calc {
public static void Test0(){
testfre.cv = testfre.ev.getText().toString();
testfre.cm = Data.m()[testfre.em.getSelectedItemPosition()];
testfre.cz = Data.zeiten()[testfre.ez.getSelectedItemPosition()];
testfre.cv = testfre.cv.toLowerCase();
testfre.per1.setText(Data.personen()[0]);
//...
}
public static void Test1_se(){
//MORE CODE
問題があるのはTest0()の最初の3行です。それらの行のどれが最初であるか、またはコードのどこにあるかは関係ありません。常にそれらです。それらをrun()またはonClick()に移動しても、何も変更されませんでした。
私のxml-layoutは次のようになります:
<android:weightSum="1">
<EditText android:text="Enter Text" android:id="@+id/v" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true"></EditText>
<Spinner android:layout_width="100dp" android:id="@+id/m" android:layout_height="wrap_content" android:layout_below="@+id/v" android:layout_alignParentLeft="true"></Spinner>
<Button android:id="@+id/GO" android:layout_width="70dp" android:layout_height="wrap_content" android:text="GO" android:layout_alignTop="@+id/z" android:layout_alignParentRight="true"></Button>
<Spinner android:layout_width="150dp" android:id="@+id/z" android:layout_height="wrap_content" android:layout_below="@+id/v" android:layout_toRightOf="@+id/m"></Spinner>
私のLogcatエントリは次のようになります(ignian.lomoko.frenchはign.test.freなどと同じです):
10-25 11:58:41.028: ERROR/AndroidRuntime(316): at android.app.ActivityThread.main(ActivityThread.java:3683)
10-25 11:58:41.028: ERROR/AndroidRuntime(316): at java.lang.reflect.Method.invokeNative(Native Method)
10-25 11:58:41.028: ERROR/AndroidRuntime(316): at java.lang.reflect.Method.invoke(Method.java:507)
10-25 11:58:41.028: ERROR/AndroidRuntime(316): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-25 11:58:41.028: ERROR/AndroidRuntime(316): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-25 11:58:41.028: ERROR/AndroidRuntime(316): at dalvik.system.NativeStart.main(Native Method)
10-25 11:58:41.038: WARN/ActivityManager(61): Force finishing activity ignian.lomoko.french/.lomokofrench
10-25 11:58:41.558: WARN/ActivityManager(61): Activity pause timeout for HistoryRecord{405c6018 ignian.lomoko.french/.lomokofrench}
10-25 11:58:43.698: INFO/Process(316): Sending signal. PID: 316 SIG: 9
10-25 11:58:43.708: INFO/ActivityManager(61): Process ignian.lomoko.french (pid 316) has died.
10-25 11:58:43.708: INFO/WindowManager(61): WIN DEATH: Window{40691bd8 ignian.lomoko.french/ignian.lomoko.french.lomokofrench paused=false}
10-25 11:58:43.809: WARN/InputManagerService(61): Got RemoteException sending setActive(false) notification to pid 316 uid 10034
10-25 11:58:52.691: WARN/ActivityManager(61): Activity destroy timeout for HistoryRecord{405c6018 ignian.lomoko.french/.lomokofrench}
私は他のどこにもどんな種類の解決策も真剣に見つけることができないので、前もって助けてくれてありがとう。他の人の助けを借りて今まで理解していた問題は、「Calc」クラスから変数にアクセスできないことです。私が探しているのは、スピナーとEditTextを公開する方法だと思います。
さて、私はdtenからの解決策に従いました、そして今それはうまくいきます!