私は(明らかに)AndroidとJavaプログラミングの新機能です。 私はかなり長いスクリプトを持っており、この質問のほとんどを残しています。私は疑問を持っている何 はこれです:アンドロイドスタジオのスクロール可能なビューに複数のテキストビューを追加するには
ScrollView scroller = (ScrollView) findViewById(R.id.Scrollview); // Find Scrollview
scroller.removeAllViews();// Kill Scrollview's child from last time this ran (and I hope its children?)
LinearLayout scrollvert = new LinearLayout(this); // Make a new linear layout... WTF is "this"
scrollvert.setOrientation(LinearLayout.VERTICAL);// Make it a vertical layout
scroller.addView(scrollvert); // add this layout to Scrollview (scroller)
TextView[] tv=new TextView[epointer]; // Going to add some text views
for (int i = 0; i <= epointer; i++) { // does stuff that creates a stringbuilder called textLog
tv[i] = new TextView(this); // <--- Dies here!
tv[i].setText(textLog);
scroller.addView(tv[i]); }
私はすでに私のxmlからScrollviewという名前ScrollViewを持っています。これに垂直なLinearLayoutを追加して、スクロール可能なビューに複数のTextViewを追加することができます(後で、特定の項目をクリックして変更または削除できます)。
これまでのところ私の結果は、「新しいTextView」の部分に到達すると死ぬという結果です。 私は自分の問題が「文脈」を理解していないと信じています。私は過去数週間に1件の記事を読んできましたが、すべて「this」、「context」、「getContext」、または「getApplicationContext」を使用すると言われていますが、実際にはどういう意味で、私はやろうとしている。
私は間違っていますか?それをどうやって修正することができますか?私がやろうとしていることをやるより良い方法があれば、それを聞きたいですが、ここで間違っていることを理解したいと思っています。
ありがとうございました。
私は、以下のログの関連部分を追加しました:(MainActivity.java:199は「それは死ぬ」場所です)
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.russdell.ytthourcalculator, PID: 3544
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:5698)
at android.widget.TextView.performClick(TextView.java:10888)
at android.view.View$PerformClick.run(View.java:22570)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7231)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5698)
at android.widget.TextView.performClick(TextView.java:10888)
at android.view.View$PerformClick.run(View.java:22570)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7231)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at com.russdell.ytthourcalculator.MainActivity.calculate(MainActivity.java:199)
at com.russdell.ytthourcalculator.MainActivity.ME(MainActivity.java:83)
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5698)
at android.widget.TextView.performClick(TextView.java:10888)
at android.view.View$PerformClick.run(View.java:22570)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7231)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
"ここに死ぬ!"実際問題の適切な説明ではありません。クラッシュしている場合は、スタックトレースを見てください。 http://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-solve-this http://stackoverflow.com/questions/3988788/what-is-a-stack-trace -and-how-can-i-use-it-to-debug-my-application-errors _n_項目の配列は_n-1_の最大インデックスを持つので、あなたの 'for'ループは実行されています1つは遠すぎる。 –
"Logcat"を使用すると、問題の内容がわかります。 https://www.youtube.com/watch?v=QUkS6CfzK9M --- https://www.youtube.com/watch?v=QqjrR11tuz0 – Tasos
「ここで死ぬ!」とは何も見ません。あなたはあなたのログを投稿するべきです。 –