When I click the Help the app is suddenly not responding. I added some toolbar with the application the about is working fine but it comes the help button the app suddenly stops.
Here's my code mainactivity code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detection);
//this hides the back button and I thank you
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setTitle(getString(R.string.progress_dialog_title));
// Disable button "detect" as the image to detect is not selected.
setDetectButtonEnabledStatus(false);
LogHelper.clearDetectionLog();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu, menu);
return true;
}
@SuppressLint("NonConstantResourceId")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.menuAbout:
View messageView = getLayoutInflater().inflate(R.layout.about, null, false);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.smile);
builder.setTitle(R.string.app_name);
builder.setView(messageView);
builder.create();
builder.show();
break;
case R.id.menuHelp:
Intent help = new Intent(this, HelpActivity.class);
startActivity(help);
break;
}
return true;
}
then this is the helpactivity code
public class HelpActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_help);
getSupportActionBar().hide();
// Toolbar toolbar = (Toolbar)findViewById(R.id.app_bar);
// setSupportActionBar(toolbar);
ActionBar bar = getSupportActionBar();
bar.setDisplayHomeAsUpEnabled(true);
bar.setTitle(R.string.help);
}
}
then here's the xml for menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menuHelp"
android:title="Help"
android:icon="@drawable/ic_help_black_24dp"/>
<item
android:id="@+id/menuAbout"
android:title="About"
android:icon="@drawable/ic_info_black_24dp"/>
<!-- <item
android:id="@+id/menuLogout"
android:title="Logout" /> -->
</menu>
then this is the xml for activity_help
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.HelpActivity">
<TextView
android:id="@+id/help_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/help_tip"
android:textSize="17sp"
android:textColor="@android:color/black"
android:layout_margin="10dp"
/>
</RelativeLayout>
What should I do? Please do help me. Thanks
case R.id.menuHelp:
// Toast.makeText(this, "You clicked settings", Toast.LENGTH_SHORT).show();
Intent help = new Intent(this, HelpActivity.class);
startActivity(help);
break;
The keyword this
refers to menu help item, not the activity. Since the first parameter of an Intent is packageContext, this
will not work.
Simply change this
in your Intent to MainActivity.this to refer to the activity as the package context.
Check out the docs for more info.