我正在开发一个应用程序,这个应用程序没有错误,但每当我在手机上测试时,当我触摸按钮但是没有声音时应该有声音。
MainActivity
package com.example.user.myapplication;
import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.widget.DrawerLayout;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.content.Intent;
import android.media.MediaPlayer;
import android.widget.Button;
public class MainActivity extends ActionBarActivity
implements NavigationDrawerFragment.NavigationDrawerCallbacks {
/**
* Fragment managing the behaviors, interactions and presentation of the navigation drawer.
*/
private NavigationDrawerFragment mNavigationDrawerFragment;
/**
* Used to store the last screen title. For use in {@link #restoreActionBar()}.
*/
private CharSequence mTitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mTitle = getTitle();
// Set up the drawer.
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
(DrawerLayout) findViewById(R.id.drawer_layout));
}
@Override
public void onNavigationDrawerItemSelected(int position) {
Fragment objFragment = null;
switch (position) {
case 0:
objFragment = new menu1_Fragment();
break;
case 1:
objFragment = new menu2_Fragment();
break;
case 2:
objFragment = new menu3_Fragment();
break;
}
// update the main content by replacing fragments
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, objFragment)
.commit();
}
public void onSectionAttached(int number) {
switch (number) {
case 1:
mTitle = getString(R.string.title_section1);
break;
case 2:
mTitle = getString(R.string.title_section2);
break;
case 3:
mTitle = getString(R.string.title_section3);
break;
}
}
public void restoreActionBar() {
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle(mTitle);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (!mNavigationDrawerFragment.isDrawerOpen()) {
// Only show items in the action bar relevant to this screen
// if the drawer is not showing. Otherwise, let the drawer
// decide what to show in the action bar.
getMenuInflater().inflate(R.menu.main, menu);
restoreActionBar();
return true;
}
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
private static final String ARG_SECTION_NUMBER = "section_number";
/**
* Returns a new instance of this fragment for the given section
* number.
*/
public static PlaceholderFragment newInstance(int sectionNumber) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((MainActivity) activity).onSectionAttached(
getArguments().getInt(ARG_SECTION_NUMBER));
}
}
protected void onStart(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
{
setContentView(R.layout.activity_main);
final MediaPlayer intromp = MediaPlayer.create(this, R.raw.intro);
Button intro = (Button) this.findViewById(R.id.intro);
intro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (intromp.isPlaying()) {
intromp.seekTo(0);
} else {
intromp.start();
}
}
});
final MediaPlayer holyshitmp = MediaPlayer.create(this, R.raw.holyshit);
final Button holyshit = (Button) this.findViewById(R.id.holyshit);
holyshit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (holyshitmp.isPlaying()) {
holyshitmp.seekTo(0);
} else {
holyshitmp.start();
}
}
});
final MediaPlayer limberthanwatermp = MediaPlayer.create(this, R.raw.limberthanwater);
Button limberthanwater = (Button) this.findViewById(R.id.limberthanwater);
limberthanwater.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (limberthanwatermp.isPlaying()) {
limberthanwatermp.seekTo(0);
} else {
limberthanwatermp.start();
}
}
});
final MediaPlayer sandpapernipplwsmp = MediaPlayer.create(this, R.raw.sandpapernipples);
Button sandpapernipples = (Button) this.findViewById(R.id.sandpapernipples);
sandpapernipples.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (sandpapernipplwsmp.isPlaying()) {
sandpapernipplwsmp.seekTo(0);
} else {
sandpapernipplwsmp.start();
}
}
});
final MediaPlayer raisemyweinermp = MediaPlayer.create(this, R.raw.raisingmyweiner);
Button raisemyweiner = (Button) this.findViewById(R.id.raisemyweiner);
raisemyweiner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (raisemyweinermp.isPlaying()) {
raisemyweinermp.seekTo(0);
} else {
raisemyweinermp.start();
}
}
});
final MediaPlayer alientacklesatreemp = MediaPlayer.create(this, R.raw.alientacklesatree);
final Button alientacklesatree = (Button) this.findViewById(R.id.alientacklesatree);
alientacklesatree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (alientacklesatreemp.isPlaying()) {
alientacklesatreemp.seekTo(0);
} else {
alientacklesatreemp.start();
}
}
});
final MediaPlayer nipplerubbermp = MediaPlayer.create(this, R.raw.nipplerubber);
Button nipplerubber = (Button) this.findViewById(R.id.nipplerubber);
nipplerubber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (nipplerubbermp.isPlaying()) {
nipplerubbermp.seekTo(0);
} else {
nipplerubbermp.start();
}
}
});
final MediaPlayer shittalkmp = MediaPlayer.create(this, R.raw.shittalk);
Button shittalk = (Button) this.findViewById(R.id.shittalk);
shittalk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (shittalkmp.isPlaying()) {
shittalkmp.seekTo(0);
} else {
shittalkmp.start();
}
}
});
}
}
}
ActivityMain
<!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id = "@+id/container">
<!--Note for Ryan, id Container is needed because it will not display the navigation menu aka the container-->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/intro"
android:layout_width="185dp"
android:layout_height="wrap_content"
android:text="Intro"
android:singleLine="true"/>
<Button
android:id="@+id/holyshit"
android:layout_width="193dp"
android:layout_height="wrap_content"
android:text="Holy shit"
android:singleLine="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/limberthanwater"
android:layout_width="185dp"
android:layout_height="wrap_content"
android:text="Limber Than Water"
android:singleLine="true"/>
<Button
android:id="@+id/sandpapernipples"
android:layout_width="193dp"
android:layout_height="wrap_content"
android:text="Sandpaper Nipples"
android:singleLine="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/raisemyweiner"
android:layout_width="185dp"
android:layout_height="wrap_content"
android:text="Raise My Weiner"
android:singleLine="true"/>
<Button
android:id="@+id/alientacklesatree"
android:layout_width="193dp"
android:layout_height="wrap_content"
android:text="Alien tacking a tree"
android:singleLine="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/nipplerubber"
android:layout_width="185dp"
android:layout_height="wrap_content"
android:text="Nipple Rubber"
android:singleLine="true"/>
<Button
android:id="@+id/shittalk"
android:layout_width="193dp"
android:layout_height="wrap_content"
android:text="Shit Talk"
android:singleLine="true"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
<!-- android:layout_gravity="start" tells DrawerLayout to treat
this as a sliding drawer on the left side for left-to-right
languages and on the right side for right-to-left languages.
If you're not building against API 17 or higher, use
android:layout_gravity="left" instead. -->
<!-- The drawer is given a fixed width in dp and extends the full height of
the container. -->
<fragment android:id="@+id/navigation_drawer"
android:layout_width="@dimen/navigation_drawer_width" android:layout_height="match_parent"
android:layout_gravity="start"
android:name="com.example.user.myapplication.NavigationDrawerFragment"
tools:layout="@layout/fragment_navigation_drawer" />
还有一个非常基本的导航抽屉。它没有任何内容只有文字,所以我不在这里张贴,因为它没有意义 一切正常,但唯一的问题是按钮。我是android的新手。我最初有一个onCreate而不是onStart按钮的动作是因为它有错误而且我被告知它onCreate只能在每个活动中调用一次。
如果你能给出答案,并提供非常值得赞赏的解释,以改善我的学习。
答案 0 :(得分:1)
删除 onStart
并将值转移到 onCreate 它应该是这样的
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MediaPlayer intromp = MediaPlayer.create(this, R.raw.intro);
Button intro = (Button) this.findViewById(R.id.intro);
intro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (intromp.isPlaying()) {
intromp.seekTo(0);
} else {
intromp.start();
}
}
});
final MediaPlayer holyshitmp = MediaPlayer.create(this, R.raw.holyshit);
final Button holyshit = (Button) this.findViewById(R.id.holyshit);
holyshit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (holyshitmp.isPlaying()) {
holyshitmp.seekTo(0);
} else {
holyshitmp.start();
}
}
});
final MediaPlayer limberthanwatermp = MediaPlayer.create(this, R.raw.limberthanwater);
Button limberthanwater = (Button) this.findViewById(R.id.limberthanwater);
limberthanwater.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (limberthanwatermp.isPlaying()) {
limberthanwatermp.seekTo(0);
} else {
limberthanwatermp.start();
}
}
});
final MediaPlayer sandpapernipplwsmp = MediaPlayer.create(this, R.raw.sandpapernipples);
Button sandpapernipples = (Button) this.findViewById(R.id.sandpapernipples);
sandpapernipples.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (sandpapernipplwsmp.isPlaying()) {
sandpapernipplwsmp.seekTo(0);
} else {
sandpapernipplwsmp.start();
}
}
});
final MediaPlayer raisemyweinermp = MediaPlayer.create(this, R.raw.raisingmyweiner);
Button raisemyweiner = (Button) this.findViewById(R.id.raisemyweiner);
raisemyweiner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (raisemyweinermp.isPlaying()) {
raisemyweinermp.seekTo(0);
} else {
raisemyweinermp.start();
}
}
});
final MediaPlayer alientacklesatreemp = MediaPlayer.create(this, R.raw.alientacklesatree);
final Button alientacklesatree = (Button) this.findViewById(R.id.alientacklesatree);
alientacklesatree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (alientacklesatreemp.isPlaying()) {
alientacklesatreemp.seekTo(0);
} else {
alientacklesatreemp.start();
}
}
});
final MediaPlayer nipplerubbermp = MediaPlayer.create(this, R.raw.nipplerubber);
Button nipplerubber = (Button) this.findViewById(R.id.nipplerubber);
nipplerubber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (nipplerubbermp.isPlaying()) {
nipplerubbermp.seekTo(0);
} else {
nipplerubbermp.start();
}
}
});
final MediaPlayer shittalkmp = MediaPlayer.create(this, R.raw.shittalk);
Button shittalk = (Button) this.findViewById(R.id.shittalk);
shittalk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (shittalkmp.isPlaying()) {
shittalkmp.seekTo(0);
} else {
shittalkmp.start();
}
}
});
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mTitle = getTitle();
// Set up the drawer.
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
(DrawerLayout) findViewById(R.id.drawer_layout));
}