2016-04-22 7 views
1

Ich versuche, meine zwei Android-Layout zu verknüpfen und den Prozess zu machen.Link zwei Layouts in Android

MainActivity.java

public class MainActivity extends AppCompatActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 



    } 

    public void open(View view){ 
     AlertDialog.Builder alb=new AlertDialog.Builder(this); 
     alb.setMessage("Are You Sure Do You Want This"); 
     alb.setPositiveButton("yes", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
      Toast.makeText(MainActivity.this,"You Clicked Yes Button",Toast.LENGTH_LONG).show(); 
      } 
     }); 

     alb.setNegativeButton("NO", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       Toast.makeText(MainActivity.this,"You Clicked Yes Button",Toast.LENGTH_LONG).show(); 
       //finish(); 
      } 
     }); 
     AlertDialog al=alb.create(); 
     al.show(); 
    } 


    public void clockwise(View view){ 
     ImageView iv=(ImageView) findViewById(R.id.imageView); 
     Animation animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.myanimation); 
     iv.startAnimation(animation); 
    } 
    public void zoom(View view){ 
ImageView iv=(ImageView) findViewById(R.id.imageView); 
     Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.clockwise); 
     iv.startAnimation(animation); 
    } 

    public void fade(View view){ 
     ImageView iv=(ImageView) findViewById(R.id.imageView); 
     Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fade); 
     iv.startAnimation(animation); 
    } 

    public void blink(View view){ 
     ImageView iv=(ImageView)findViewById(R.id.imageView); 
     Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.blink); 
     iv.startAnimation(animation); 
    } 

    public void move(View view){ 
     ImageView iv=(ImageView)findViewById(R.id.imageView); 
     Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.move); 
     iv.startAnimation(animation); 
    } 

    public void slide(View view){ 
     ImageView iv=(ImageView)findViewById(R.id.imageView); 
     Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide); 
     iv.startAnimation(animation); 
    } 






public void next(View v){ 
    // setContentView(R.layout.recording); 
    Intent inent = new Intent(this, RecordActivity.class); 

    startActivity(inent); 
} 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @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); 
    } 
} 

RecordActivity.java

public class RecordActivity extends Activity { 
    private MediaRecorder mr; 
    Button play,record,stop; 
    private String outputFile=null; 
    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.recording); 

     play=(Button)findViewById(R.id.button3); 
     stop=(Button)findViewById(R.id.button2); 
     record=(Button)findViewById(R.id.button); 
     stop.setEnabled(false); 
     play.setEnabled(false); 

     outputFile= Environment.getExternalStorageDirectory().getAbsolutePath()+"/recording.3gp"; 
     mr=new MediaRecorder(); 
     mr.setAudioSource(MediaRecorder.AudioSource.MIC); 
     mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     mr.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB); 
     mr.setOutputFile(outputFile); 

    } 


    public void Record(View v){ 
     try{ 
      mr.prepare(); 
      mr.start(); 
     } 
     catch (Exception e){ 
      e.printStackTrace(); 
     } 
     record.setEnabled(false); 
     stop.setEnabled(true); 


    } 


    public void stop(View v){ 
     mr.stop(); 
     mr.release(); 
     mr=null; 
     stop.setEnabled(false); 
     play.setEnabled(true); 
     Toast.makeText(getApplicationContext(),"AudioRecorded Sucessfully",Toast.LENGTH_LONG); 

    } 

    public void play(View v){ 
     MediaPlayer mp=new MediaPlayer(); 
     try{ 
      mp.setDataSource(outputFile); 
      mp.prepare(); 
     } 
     catch (Exception e){ 
      e.printStackTrace(); 
     } 
     mp.start(); 
     Toast.makeText(getApplicationContext(),"Playing Audio",Toast.LENGTH_LONG); 
    } 

} 

content_main.xml

<?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" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.example.admin.alertapplication.MainActivity"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Alert Dialog" 
     android:id="@+id/textView" 
     android:textSize="35dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Raptor" 
     android:id="@+id/textView2" 
     android:textColor="#da644860" 
     android:textSize="35dp" 
     android:layout_below="@+id/textView" 
     android:layout_centerHorizontal="true" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageView" 
     android:src="@drawable/logo" 
     android:layout_below="@+id/textView2" 
     android:layout_alignLeft="@+id/textView" 
     android:layout_alignStart="@+id/textView" 
     android:layout_alignRight="@+id/button2" 
     android:layout_alignEnd="@+id/button2" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="zoom" 
     android:id="@+id/button" 
     android:layout_below="@+id/imageView" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="40dp" 
     android:onClick="clockwise"/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="clockwise" 
     android:id="@+id/button2" 
     android:layout_alignTop="@+id/button" 
     android:layout_centerHorizontal="true" 
     android:onClick="zoom"/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="fade" 
     android:id="@+id/button3" 
     android:layout_alignTop="@+id/button2" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:onClick="fade"/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="blink" 
     android:onClick="blink" 
     android:id="@+id/button4" 
     android:layout_below="@+id/button" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="move" 
     android:onClick="move" 
     android:id="@+id/button5" 
     android:layout_below="@+id/button2" 
     android:layout_alignRight="@+id/button2" 
     android:layout_alignEnd="@+id/button2" 
     android:layout_alignLeft="@+id/button2" 
     android:layout_alignStart="@+id/button2" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="slide" 
     android:onClick="slide" 
     android:id="@+id/button6" 
     android:layout_below="@+id/button3" 
     android:layout_toRightOf="@+id/textView" 
     android:layout_toEndOf="@+id/textView" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Next" 
     android:onClick="next" 
     android:id="@+id/button61" 
     android:layout_below="@+id/button4" 
     android:layout_alignRight="@+id/button4" 
     android:layout_alignEnd="@+id/button4" /> 

</RelativeLayout> 

recording.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:weightSum="1"> 

    <TextView 
     android:layout_width="234dp" 
     android:layout_height="112dp" 
     android:text="Android Audio Recording" 
     android:id="@+id/textView3" 
     android:layout_gravity="center_horizontal" 

     android:textSize="30dp" 
     android:textColor="#d50c0c" 
     android:layout_weight="0.01" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="86dp" 
     android:id="@+id/imageView2" 
     android:src="@drawable/logo" 
     android:layout_gravity="center_horizontal" 
     /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Record" 
     android:id="@+id/button7" 
     android:layout_below="@+id/imageView2" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="59dp" 
     android:onClick="Record" 
     /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Stop" 
     android:id="@+id/button8" 
     android:layout_alignTop="@+id/button" 
     android:layout_centerHorizontal="true" 
     android:layout_gravity="center_horizontal" 
     android:onClick="stop" 
     /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="play" 
     android:id="@+id/button9" 
     android:layout_alignTop="@+id/button8" 
     android:layout_alignRight="@+id/textView3" 
     android:layout_alignEnd="@+id/textView3" 
     android:layout_gravity="right" 
     android:onClick="play" 
     /> 

</LinearLayout> 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.admin.alertapplication"> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.RECORD_AUDIO"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".RecordActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
      </intent-filter> 
     </activity> 


    </application> 

</manifest> 

Stapelüberwachung 04-22 14: 24: 09.415 4470-4470/com.example.admin. alertapplication E/AndroidRuntime: FATALE AUSNAHME: Haupt Prozess: com.example.admin.alertapplication, PID: 4470 java.lang.RuntimeException: Aktivität kann nicht gestartet werden ComponentInfo {com.beispiel.admin.alertapplication/com.beispiel.admin.alertapplication.RecordActivity}: java.lang.NullPointerException: Versuch, virtuelle Methode 'void android.widget.Button aufzurufen. setEnabled (boolean)‘auf null Objektreferenz bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2325) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387) bei android.app.ActivityThread. Zugriff auf $ 800 (ActivityThread.java:151) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1303) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os .Looper.loop (Looper.java:135) bei android.app.ActivityThread.main (ActivityThread.java:5254) bei java.lang.reflect.Method.invoke (native Methode) bei java.lang.reflect. Method.invoke (Methode.java:372) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java: 698) verursacht durch: java.lang.NullPointerException: Es wurde versucht, die virtuelle Methode 'void android.widget.Button.setEnabled (boolean)' für eine Nullobjekt-Referenz unter com.example.admin.alertapplication.RecordActivity.onCreate (RecordActivity .java: 27) bei android.app.Activity.performCreate (Activity.java:5990) bei android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1106) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2278) bei Android .app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387) bei android.app.ActivityThread.access $ 800 (ActivityThread.java:151) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1303) bei android.os.Handler.dispatchMessage (Handler.java: 102) bei android.os.Looper.loop (Looper.java:135) bei android.app.ActivityThread.main (ActivityThread.java:5254) bei java.lang.reflect.Method.invoke (Native Methode) bei java.lang.reflect.Method.invoke (Methode.java:372) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903) bei com.android.internal.os .ZygoteInit.main (ZygoteInit.java:698)

ich den obigen Code verwenden, um für die Verknüpfung der beiden Layouts, wenn wurde neben Schaltfläche geklickt next() Funktion wird nach der Anwendung Leider aufgerufen hat gestoppt, warum es passiert kann mir helfen, diese

+0

schreiben Sie bitte die stacktrace –

+0

Was d o Sie meinen, indem Sie zwei Layouts verbinden? Kannst du es bitte ausarbeiten? – Wanted

+0

@ PhanVănLinh sehen Sie die Stack-Trace in meiner Frage bearbeitet – KVK

Antwort

1

Der Grund in RecordActivity in dieser Linie
play=(Button)findViewById(R.id.button3);
ist zu beheben Da recording.xml nicht enthalten button3 so wird play(Button) sein Sie nennen null
Dann play.setEnabled(false); => App Absturz von NullPointerException

+0

danke ich falsch gesetzt die ID – KVK

Verwandte Themen