注意:この質問は、私が自分の愚かさを捕らえたために解決されました
カスタムクラスをに追加したいのですLinearLayout
が、何らかの理由で。を取得し続けNullPointerException
ます。
加算を処理する方法は次のとおりです。
protected void onPostExecute(String results) {
System.out.println("ON POST EXECUTE : " + results);
try {
if(!results.equals(((MessageBlurb)container.getChildAt(0)).getMessage())){
try {
container.removeViewAt(30);
for (int i = 29; i > 0; i--) {
container.addView(container.getChildAt(i-1), i);
container.removeViewAt(i-1);
}
container.addView(new MessageBlurb(getApplicationContext(), results, Color.BLACK), 0);
} catch (NullPointerException e) {
// TODO: handle exception
}
}
}
catch (Exception e) {
MessageBlurb mb = new MessageBlurb(getApplicationContext(), results, Color.BLACK);
mb.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
System.out.println(mb);
container.addView(mb, 0);
}
}
の中にあるので、ここでMessageBlurb
拡張します。ViewGroup
TextView
MessageBlurb
クラスは次のMessageBlurb
ようになります。
public MessageBlurb(Context context, String message, int color){
super(context);
myTV = new TextView(context);
this.addView(myTV);
myTV.setText(message);
System.out.println("THE BLURB IS CREATED");
this.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
System.out.println("YOU CLIKED THE BLURB");
}
});
}
の説明を印刷しましたがmb
、メモリの場所がわかります。それだけでなく、logcatエラーは次の行を示しています。
container.addView(mb, 0);
それcontainer
自体はファイルでLinearLayout
定義されていactivity_main.xml
ます。これは、次のコード行で初期化されます。
container = (LinearLayout)findViewById(R.id.container);
xmlファイルのレイアウトのIDも呼び出されますcontainer
誰かが私が間違っていることを見ることができますか?ありがとう!