アクティビティの開始時(または行の膨張時)に非表示に設定されている4つの画像ビューがあります。私はボタンを押して、すべてを見えるようにしたいと思います。私は次の要約コードを持っていますが、最後のもの以外の他の画像ビューにアクセスしようとするとエラーが発生します。Android - IDまたはタグで複数の画像ビューで表示/非表示を切り替える
public class xx {
private ImageView up;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Log.i(TAG, "excersizeAdapter getView");
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
Excersize e = items.get(position);
if (e != null) {
TextView exTitle = (TextView) v.findViewById(R.id.ex_type_title);
TextView exOn = (TextView) v.findViewById(R.id.ex_on_title);
TextView exRestAmount = (TextView) v.findViewById(R.id.ex_rest_amount);
TextView exSequence = (TextView) v.findViewById(R.id.ex_sequence);
up = (ImageView) v.findViewById(R.id.moveup);
down = (ImageView) v.findViewById(R.id.movedown);
if (exTitle !=null) {
exTitle.setText(e.getTypeTitle());
}
if (exOn !=null) {
exOn.setText("On: "+e.getTypeOn());
}
if (exRestAmount !=null) {
exRestAmount.setText(e.getRestAmount().toString());
}
if (exSequence !=null) {
exSequence.setText(e.getSequence().toString());
up.setTag(8881);
down.setTag(8882);
up.setId(((Integer)e.getSequence()));
down.setId(((Integer)e.getSequence()));
Log.i(TAG, "up,down values=" +e.getSequence());
}
}
return v;
}
}
public void toggleReorderButtons() {
up.findViewById(2).setVisibility(View.VISIBLE);
up.setVisibility(View.VISIBLE);
up.setOnClickListener(this);
}
}
OK、これはコードを削減されますが、その他にはクラッシュを引き起こし、up.setvis up.findview...
makevisinvis方法、で私の活動に追加された最後のものだけをオンにします。
私はまた、以下を成功裏に試みました。
ImageView upper = (ImageView) up.findViewById(2);
upper.setVisibility(View.VISIBLE);
素敵なエラーダンプ:
04-21 09:10:55.650: W/dalvikvm(22392): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
04-21 09:10:55.675: E/AndroidRuntime(22392): FATAL EXCEPTION: main
04-21 09:10:55.675: E/AndroidRuntime(22392): java.lang.NullPointerException
04-21 09:10:55.675: E/AndroidRuntime(22392): at com.mediabarltd.digittrainer.ProgramDisplay.toggleReorderButtons(ProgramDisplay.java:437)
04-21 09:10:55.675: E/AndroidRuntime(22392): at com.mediabarltd.digittrainer.ProgramDisplay.onClick(ProgramDisplay.java:391)
04-21 09:10:55.675: E/AndroidRuntime(22392): at android.view.View.performClick(View.java:2538)
04-21 09:10:55.675: E/AndroidRuntime(22392): at android.view.View$PerformClick.run(View.java:9152)
04-21 09:10:55.675: E/AndroidRuntime(22392): at android.os.Handler.handleCallback(Handler.java:587)
04-21 09:10:55.675: E/AndroidRuntime(22392): at android.os.Handler.dispatchMessage(Handler.java:92)
04-21 09:10:55.675: E/AndroidRuntime(22392): at android.os.Looper.loop(Looper.java:130)
04-21 09:10:55.675: E/AndroidRuntime(22392): at android.app.ActivityThread.main(ActivityThread.java:3691)
04-21 09:10:55.675: E/AndroidRuntime(22392): at java.lang.reflect.Method.invokeNative(Native Method)
04-21 09:10:55.675: E/AndroidRuntime(22392): at java.lang.reflect.Method.invoke(Method.java:507)
04-21 09:10:55.675: E/AndroidRuntime(22392): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
04-21 09:10:55.675: E/AndroidRuntime(22392): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
04-21 09:10:55.675: E/AndroidRuntime(22392): at dalvik.system.NativeStart.main(Native Method)
それは見ているいくつかの深刻なと私は何をやっていたの合計リワークを取りました。しかし...
基本的に私は、チュートリアルAndroid ListView and ListActivityを踏襲して、Android ListView Adapter OnClickListener issueで説明きちんと「トリック」を実施しました。
(私は本当にこれで苦労しています。)
投稿されたログによると、NPEは 'makevisinvis'にはありません。ダブルチェックしていただけますか?また、オブジェクトを定義するinits/upits/ – Asahi
のコードを投稿することができます。申し訳ありませんが、私のexamlpeで愚かだったので、私はそれを書き出す際にメソッド名を変更しました。私は更新します.... – Purplemonkey