2012-07-16 44 views
0

我創建的應用程序在主屏幕上有兩個按鈕,然後鏈接到另一個屏幕。但是,當我鏈接到其他篩選器時,我確實顯示了xml文件,但與該文件關聯的類似乎不起作用。就像我在其他屏幕上的按鈕不符合他們的要求(我有一個不返回主頁面的後退按鈕和一個不鏈接到video.xml屏幕的圖像按鈕)。Android-屏幕鏈接不起作用

有誰知道這個問題?

Main_Activity.java

import android.app.Activity; 
    import android.content.Intent; 

    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 

    import android.widget.Button; 


    public class MainActivity extends Activity { 





    @Override 
     public void onCreate(Bundle savedInstanceState) 
    { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 





    final Button videoNext = (Button) findViewById(R.id.videoButton) ; 

    videoNext.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

Intent myIntent = new Intent(MainActivity.this, Screen2.class); 
     MainActivity.this.startActivity(myIntent); 
     //setContentView(R.layout.screen2xml); 
     } 
    }); 

    Button newsNext = (Button) findViewById(R.id.newsButton); 
    newsNext.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

     Intent myIntent = new Intent(MainActivity.this, Screen1.class); 
     MainActivity.this.startActivity(myIntent); 
     //setContentView(R.layout.screen2xml); 
     } 
    }); 
    } 

    } 

屏幕2.java

​​

screen2xml.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:paddingBottom="2dp" 
    android:paddingLeft="2dp" 
    android:paddingRight="2dp" 
    android:paddingTop="2dp" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/backButton" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:ems="10" 
     android:inputType="textMultiLine" /> 

    <EditText 
     android:id="@+id/editText3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/editText1" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="120dp" 
     android:ems="10" 
     android:inputType="textMultiLine" > 

     <requestFocus /> 
    </EditText> 

    <ImageButton 
     android:id="@+id/imageButton1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/button1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="23dp" 
     android:background="@drawable/ic_button1" 
     android:src="@drawable/ic_button1" android:contentDescription="TODO"/> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/editText1" 
     android:layout_below="@+id/imageButton1" 
     android:layout_marginTop="81dp" 
     android:ems="10" 
     android:inputType="textMultiLine" 
     android:text="@string/text" /> 

</RelativeLayout> 

Video1.java

import java.io.File; 

import android.net.Uri; 

import android.os.Bundle; 
import android.os.Environment; 
import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.graphics.PixelFormat; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.MediaController; 
import android.widget.VideoView; 

import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnPreparedListener; 

public class Video1 extends Activity { 


    VideoView videoView; 
    @Override 
public void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 



    videoView = (VideoView) findViewById(R.id.videoView1); 
    MediaController mediaController = new MediaController(this); 
    mediaController.setAnchorView(videoView); 
//Set video link (mp4 format) 
    Uri video = Uri.parse("http://vimeo.com/15615625"); 
    videoView.setMediaController(mediaController); 
    videoView.setVideoURI(video); 


    videoView.start(); 
    setContentView(R.layout.video); 


    } 
@SuppressLint("ParserError") @Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 


} 

video.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 


</LinearLayout> 

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.wunapp.newsvideoapp" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="12" 
     android:targetSdkVersion="15" /> 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

     </activity> 
     <activity 
      android:name=".Screen2"> 

     </activity> 

     <activity 
      android:name=".video"> 

     </activity> 
     </application> 

</manifest> 

我得到這個錯誤logcat中以及

07-16 15:46(實現在意見中提出的修改後): 01.259:E/AndroidRuntime(15421):致命例外:main 07-16 15:46:01.259:E/AndroidRuntime(15421):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.wunapp.newsvideoapp/com。 wunapp.newsvideoapp.Screen2}:java.lang.NullPointer異常 07-16 15:46:01.259:E/AndroidRuntime(15421):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2205) 07-16 15:46:01.259:E/AndroidRuntime(15421)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240) 07-16 15:46:01.259:E/AndroidRuntime(15421):at android.app.ActivityThread.access $ 600(ActivityThread.java:139) 07 -16 15:46:01.259:E/AndroidRuntime(15421):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1262) 07-16 15:46:01.259:E/AndroidRuntime(15421):at android.os.Handler.dispatchMessage(Handler.java:99) 07-16 15:46:01.259:E/AndroidRuntime(15421):at android.os.Looper.loop(Looper.java:154) 07-16 15:46:01.259:E/AndroidRuntime(15421):在android.app.ActivityThread.main(ActivityThread.java:4977) 07-16 15:46:01.259:E/AndroidRuntime(15421):在java.lang.reflect.Method.invokeNative(Native Method) 07-16 15:46:01.259:E/AndroidRuntime(15421):at java .lang.reflect.Method.invoke(Method.java:511) 07-16 15:46:01.259:E/AndroidRuntime(15421):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java :784) 07-16 15:46:01.259:E/AndroidRuntime(15421):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 07-16 15:46:01.259:E/AndroidRuntime(15421):at dalvik.system.NativeStart.main(Native Method) 07-16 15:46:01.259:E/AndroidRuntime(15421):引起:java.lang.NullPointerException 07-16 15:46 :01.259:E/AndroidRuntime(15421):at com.wunapp.newsvideoapp.Screen2.onCreate(Screen2.java:30) 07-16 15:46:01.259:E/AndroidRuntime(15421):at android.app.Activity.performCreate(Activity.java:4538) 07-16 15:46:01.259:E/AndroidRuntime(15421):at android.app.Instrumentation.callActivityOnCreate(Instrumentation。java:1071) 07-16 15:46:01.259:E/AndroidRuntime(15421):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161) 07-16 15:46:01.259:E/AndroidRuntime 15421):...... 11多個

回答

2

當您點擊videoNext時,您只需將screen2的xml加載到MainActivity中即可。

setContentView(R.layout.screen2xml); 

如果你想加載Screen2的活動,那麼你需要啓動它,像一個你已經註釋掉的意圖。這樣第二個活動就會顯示出來,並且正確使用screen2的xml。像這樣:

Intent myIntent = new Intent(MainActivity.this, Screen2.class); 
MainActivity.this.startActivity(myIntent); 
+0

07-09 10:35:14.806:E/Handler(6745):無法處理回調;接口未實現,回調:[email protected] 07-09 10:35:14.806:E/Handler(6745):java.lang.IllegalStateException:在活動中找不到方法finishActivity(View)類com.wunapp.newsvideoapp.MainActivity onView處理器視圖類android.widget.Button與ID'backButton' 07-09 10:35:14.806:E/Handler(6745):\t at android.view.View $ 1。 onClick(View.java:3058) – 2012-07-16 19:37:39

+0

繼續收到這些錯誤 – 2012-07-16 19:37:56

+0

你什麼時候得到錯誤?你在做什麼活動?你在推什麼按鈕? – 2012-07-16 19:43:42

2

,而不是下面的代碼

videoNext.setOnClickListener(new OnClickListener() { 

使用videoNext.setOnClickListener(new View.OnClickListener() {

它需要View.onclickListener。

,而不是調用

setContentView(R.layout.screen2xml); 

你應該startActivity(意向)開始一個新的活動;方法,並在此活動中顯示此佈局。 不建議多次使用setContentView。

+0

感謝您的回答,但它仍然無法解決我的問題。下一頁中的按鈕不起作用。它們出現了,但是當你按下它們時,它們不會進入它們應該去的頁面。 – 2012-07-16 19:29:55

+0

再次閱讀我的答案,在你的整個代碼中它寫得不好。您需要按照建議調用新的View.onclickListner,而不是新的onclicklistner。您需要調用StartActivity,而不是setcontentview。他們不會去反正..申請我的suggessions,然後看看發生了什麼,並相應地編輯你的問題 – 2012-07-16 19:33:51

+0

我仍然有錯誤,你能檢查我的logcat(在問題中編輯)? – 2012-07-16 19:58:50