0

と活動していListViewます。いくつかのアイテムをuserWillGo追加OnClickListenerして追加する必要があります。

OnClickListenersこれは単純なコードですが、アクティビティの開始時にのみすべてのアイテムの反応が得られるため、機能しません。

    public class UserDetailActivity extends Activity{
    ...
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.l_user_detail);

            Intent intent = getIntent();
            User user = (User) intent.getSerializableExtra("class");
            ...

            userWillGo = (LinearLayout) findViewById(R.id.linerLayout_userDetail_willGoTO);
            if (user.getUserWillGo().size() > 0)
                for (int i = 0; i < user.getUserWillGo().size(); i++) {
                    View myView = (View) LayoutInflater.from(getApplicationContext()).inflate(R.layout.item_list, userWillGo, false);
                    ...
                    myView.setOnClickListener(mOnClickListener(this, curentEvent));
                    userWillGo.addView(myView);
                }

                ...
        }

        private View.OnClickListener mOnClickListener(UserDetailActivity userDetailActivity, Event curentEvent) {
            Intent i = new Intent(userDetailActivity, EventDetailActivity.class);
            i.putExtra("class", curentEvent);
            startActivity(i);
            return null;
        }

このバグを修正するのに役立ちます。Thnx。

4

1 に答える 1

5

mOnClickListenerを返す関数として宣言しましたnullが、その名前は変数になりたいmOnClickListenerことを示しています...

private View.OnClickListener mOnClickListener(UserDetailActivity userDetailActivity, Event curentEvent) {
    ...
    return null;
}

パラメータを受け入れるカスタムクラスを作成し、このクラスのインスタンスを作成して、代わりに使用する必要があります。


考え直してみると、次のようなものを使用できます。

private View.OnClickListener createOnClickListener(UserDetailActivity userDetailActivity, final Event currentEvent) {
    return new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(v.getContext(), EventDetailActivity.class);
            i.putExtra("class", currentEvent);
            startActivity(i);
        }
    };
}

(このバージョンでは、必要さえありませんuserDetailActivity。)

于 2013-03-18T16:27:05.277 に答える