我正在使用onOptionsItemSelected方法来过滤我的listviewes但是在声明了方法后我得到了方法从未使用过异常,我不知道如何使用这个方法。请更正我的代码。
我的编程代码如下,
//I am getting exception here
public boolean onOptionsItemSelected(MenuItem item,LayoutInflater inflater,ViewGroup container) {
Log.d("onOptionsItemSelected", "yes");
switch (item.getItemId()) {
case R.id.all:
displayEventInvitationList(inflater,container);
return true;
case R.id.event:
displayEventList();
return true;
case R.id.invitation:
displayInvitationList();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
//method defined here
public View displayEventInvitationList(LayoutInflater inflater, ViewGroup container) {
context = getActivity().getApplicationContext();
view = inflater.inflate(R.layout.chatwindow_tab, container, false);
sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME,
Context.MODE_PRIVATE);
DatabaseHelper dbHelper = new DatabaseHelper(context);
final UserMO userMO = dbHelper.getRingeeUserData(1);
new AsyncTask<Void, Void, List<EventMO>>() {
@Override
protected List<EventMO> doInBackground(Void... arg0) {
eventMOs = gson.fromJson(eventDelegates.getAllEventFromUser(userMO, context), new TypeToken<List<EventMO>>() {
}.getType());
invitationMOs = gson.fromJson(eventDelegates.getAllEventForUser(userMO, context), new TypeToken<List<EventMO>>() {
}.getType());
List<EventMO> groupEventInvitesList = new ArrayList<>();
for (EventMO eventMO : eventMOs) {
groupEventInvitesList.add(eventMO);
}
for (EventMO eventMO : invitationMOs) {
groupEventInvitesList.add(eventMO);
}
return groupEventInvitesList;
}
答案 0 :(得分:2)
我得到的方法从未使用异常
首先,这是一个警告,而不是例外。
其次,它永远不会被使用,因为没人会叫它。
也许您正在寻求实现具有不同方法签名的onOptionsItemSelected()
on a Fragment
。或者,如果这是一项活动,它也是offers onOptionsItemSelected()
,但签名不同。如果您删除LayoutInflater inflater
和ViewGroup container
参数,则可能会有更好的运气。
答案 1 :(得分:0)
onOptionsItemSelected
是Activity
(或Fragment
)的方法。
你已经在其他地方确定了它。
从你定义它的地方剪切你的方法并将它粘贴到你的活动(或片段)中,这是一个级别 - 就在最后一次关闭之前}