Ich habe diese Ausnahme, und ich habe Antworten hier suchen, aber es hat nicht für mich funktioniert. Also ich habe diesen Fehler:Konnte Methode für android nicht ausführen: onClick (TextView.setText)
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
at android.view.View.performClick(View.java:4084)
at android.view.View$PerformClick.run(View.java:16966)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:4084)
at android.view.View$PerformClick.run(View.java:16966)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0xb
at android.content.res.Resources.getText(Resources.java:229)
at android.support.v7.widget.ResourcesWrapper.getText(ResourcesWrapper.java:52)
at android.widget.TextView.setText(TextView.java:3620)
at com.henichaer.randomizer.MainActivity.onClick(MainActivity.java:64)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:4084)
at android.view.View$PerformClick.run(View.java:16966)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Und das ist mein MainActivity Code (ye, es schlecht, aber ich lerne nur das):
public class MainActivity extends AppCompatActivity {
private ImageButton settingsButon;
private ImageButton infoButon;
private SharedPreferences sp;
TextView textView;
private int min;
private int max;
private RelativeLayout relativeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
settingsButon = (ImageButton)findViewById(R.id.settingsButton);
infoButon = (ImageButton)findViewById(R.id.infoButton);
relativeLayout = (RelativeLayout)findViewById(R.id.relLayout);
textView = (TextView)findViewById(R.id.randomedView) ;
sp = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
// textView.setPaintFlags(textView.getPaintFlags() | Paint.SUBPIXEL_TEXT_FLAG);
}
@Override
protected void onResume() {
super.onResume();
boolean darkTheme = sp.getBoolean("darkTheme",false);
if(darkTheme){
relativeLayout.setBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
settingsButon.setImageResource(R.drawable.settings_white);
infoButon.setImageResource(R.drawable.information_white);
}
else {
relativeLayout.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
settingsButon.setImageResource(R.drawable.settings_black);
infoButon.setImageResource(R.drawable.information_black);
}
min = Integer.parseInt(sp.getString("minNumber", "1"));
max = Integer.parseInt(sp.getString("maxNumber", "100"));
}
public void settingsClick(View view) {
Intent intent = new Intent(this,Preferences.class);
startActivity(intent);
}
public void onClick(View view) {
Randomizer randomizer = new Randomizer();
int randomed = randomizer.randomNext(min,max);
System.out.println(randomed);
textView.setText(randomed);
}
So hält es Arbeit in diesem Teil:
Ich habe diese TextView initialisieren und Android: onClick, aber ich denke, ich habe etwas falsch gemacht. Wenn ich nur string schreibe, funktioniert es gut, aber wenn ich klicke (tippe), funktioniert die App nicht mehr P.S. Sorry für mein Englisch
Konvertieren Sie Ihr zufälliges int in eine Zeichenkette vorfrore, indem Sie es in setText() verwenden. –
konvertieren oder Sie können 'textView.setText (randomed +" ");' –
Ändern Sie diese Zeile in textView.setText (String.valueOf (randomed)); –