触摸主活动中的任何位置都无法启动活动

时间:2015-01-08 02:19:55

标签: java android eclipse android-layout android-intent

可以请别人伸出援助之手吗?几个小时以来,我一直在努力解决这个问题。我有一个Main和Start活动,Main是带有一堆信息的启动器(TextViews),一旦有人触摸屏幕就应该转入Start活动。我发现有关如何执行此操作的堆栈溢出的一些信息(在相对布局上设置onTouchListener())但是它对我不起作用,所以每次我尝试使用:

    RelativeLayout layout= (RelativeLayout)findViewById(R.id.relativeLayout1);
    layout.setOnTouchListener(this);

它告诉我将'this'转换为'OnTouchListener',结果如下:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

TextView display1;
TextView display2;
TextView display3;
TextView display4;
ImageView image1;
RelativeLayout layout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.start_screen);
    getActionBar().setTitle("AutoSMS");
    RelativeLayout layout= (RelativeLayout)findViewById(R.id.relativeLayout1);
    layout.setOnTouchListener((OnTouchListener) this);
    display1 = (TextView) findViewById(R.id.textView1);
    display2 = (TextView) findViewById(R.id.textView2);
    display3 = (TextView) findViewById(R.id.textView3);
    display4 = (TextView) findViewById(R.id.textView4);
    image1 = (ImageView) findViewById(R.id.imageView2);
    Intent openStarting = new Intent("android.intent.action.MAIN");
    startActivity(openStarting);
    }

   }

这是清单,以防万一

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

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="15" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".Start"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.START" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".End"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.END" />

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

</manifest>

DDMS给我ClassCastException,MainActivity无法强制转换为ViewOnTouchListener

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:1)

您可以将整个活动实施为onTouchListener,也可以在添加时创建新的onTouchListener。喜欢

  

public class myActivity extends Activity实现onTouchListener

  

thisObject.add(new onTouchListener(){

     
    

// TODO:添加代码

  
     

});

如果没有,则无需将Activity转换为onTouchListener。如果您有double并且想要将其值作为int,则可以在某些情况下获得特定值。你只需要制作一个新的onTouchListener或将你的活动变成一个,因为你没有。

相关问题