У меня настроено contextMenu
, и оно показывает элементы из списка. Однако, когда элемент выбран, он ничего не делает. Я пробовал разные способы; используя .setCheckable()
или вызывая намерение. Я не получаю никаких ошибок, но он ничего не делает. Один и тот же класс может быть вызван через Intent
с отдельной кнопки, и он отлично работает.
Я думаю, что мне не хватает некоторых важных деталей в коде.
`package com.myExperiment.androidapp.userinterface;
import android.app.Activity;
//import android.app.ListActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
//import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
//import android.view.ViewGroup;
import android.widget.Button;
//import android.widget.ListView;
//import android.widget.Toast;
public class MyHome extends Activity
{
Button btnMyMenu;
Button btnAnnouncements;
Button btnGoToWebsite;
Button btnWorkflows;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.homelayout);
//Initialising variables with xml properties
btnMyMenu = (Button) findViewById(R.id.buttonMyStuff);
btnAnnouncements = (Button) findViewById(R.id.buttonAnnouncements);
btnGoToWebsite = (Button) findViewById(R.id.buttonWebsite);
btnWorkflows = (Button)findViewById(R.id.buttonWorkflow);
//Checking for button click listeners
btnMyMenu.setOnClickListener(actionOnClickListener);
btnGoToWebsite.setOnClickListener(buttonGoToWebsite);
btnWorkflows.setOnClickListener(buttonWorkflows);
//checking for context menu cluck
registerForContextMenu(btnMyMenu);
}//onCreate
View.OnClickListener buttonWorkflows = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent workflowIntent = new Intent(MyHome.this, Workflows.class);
startActivity(workflowIntent);
}
};
//Open myExperiment website when button clicked
View.OnClickListener buttonGoToWebsite = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String website = "http://www.myexperiment.org";
Intent browse = new Intent(Intent.ACTION_VIEW, Uri.parse(website));
startActivity(browse);
}
};
private View.OnClickListener actionOnClickListener = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (v != null)
{
v.showContextMenu();
}
}
};
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("My Menu");
menu.add(0, v.getId(), 0, "Workflows");
menu.add(0, v.getId(), 0, "Credits");
menu.add(0, v.getId(), 0, "Friends");
menu.add(0, v.getId(), 0, "Groups");
menu.add(0, v.getId(), 0, "Notifications");
}//onCreateContextMenu
public boolean onCreateItemSelected(MenuItem item)
{
if(item.getTitle() == "Workflows")
{
Intent workflowIntent = (Intent) item.setIntent(new Intent(MyHome.this, Workflows.class));
startActivity(workflowIntent);
}
else if(item.getTitle() == "Credits")
{
Intent creditsIntent = new Intent(MyHome.this, Credits.class);
startActivity(creditsIntent);
}
else if(item.getTitle() == "Friends")
{
View.OnClickListener buttonFriendsHandler = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent friendsIntent = new Intent(MyHome.this, Friends.class);
startActivity(friendsIntent);
}
};
}
else
{
return false;
}
return true;
}//onCreateItemSelected
}