Val*_*Val 0 android view onclick android-activity onclicklistener
我有活动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;
}
Run Code Online (Sandbox Code Playgroud)
帮助修复此错误.日Thnx.
你声明mOnClickListener为一个返回的函数null,但它的名字暗示你想mOnClickListener成为一个变量......
private View.OnClickListener mOnClickListener(UserDetailActivity userDetailActivity, Event curentEvent) {
...
return null;
}
Run Code Online (Sandbox Code Playgroud)
您需要创建一个自定义类来接受您的参数,创建此类的实例,然后使用它.
第二个想法你可以使用类似的东西:
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);
}
};
}
Run Code Online (Sandbox Code Playgroud)
(使用此版本,您甚至不需要userDetailActivity.)
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |