从android中的表视图移动到新视图时,应用程序崩溃了

时间:2012-02-15 11:19:21

标签: android

我是Android开发中的新手,这就是为什么我要求专家这么简单的问题

我创建了一个表视图,它工作正常。

我在点击第一个单元格时尝试移动到新视图,为此我创建了一个新文件Newview.java。

但是当点击第一个单元格应用程序时崩溃并显示消息“不幸的是HelloTableLayout已停止”。

任何人都可以帮助我。

HelloTableLayoutActivity.java

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

public class HelloTableLayoutActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView name =  (TextView)findViewById(R.id.label);
        name.setOnClickListener(new View.OnClickListener()
        {

                    public void onClick(View v) {
        Intent nameActivity =new Intent();
        nameActivity .setClass(getApplicationContext(), Newview.class);
        startActivity(nameActivity);

    }
        });
    }
}

main.xml中

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1">

    <TextView
        android:id="@+id/label"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <TableRow>
        <TextView
            android:layout_column="1"
            android:text="@string/name"
            android:padding="3dip" />
        <TextView
            android:text="@string/initial"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>

    <TableRow>
        <TextView
            android:layout_column="1"
            android:text="@string/hometown"
            android:padding="3dip" />
        <TextView
            android:text="@string/state"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>      
</TableLayout>

Newview.java

import android.app.Activity;
import android.os.Bundle;

public class Newview extends Activity
{
 /** Called when the activity is first created. */

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

HelloTableLayout Manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sweans.tb"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" 
         >
        <activity
            android:label="@string/app_name"
            android:name=".HelloTableLayoutActivity">
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

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

        <activity 
            android:name=".NewviewActivity"
            android:label="@string/app_name"
            >
        </activity>

    </application>

</manifest>

foo.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/label"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />


</LinearLayout>

任何人都可以帮助我在我的代码中出错的地方以及应用程序崩溃的原因。

提前致谢。

1 个答案:

答案 0 :(得分:3)

请更改以下代码。

 Intent nameActivity =new Intent();
 nameActivity .setClass(getApplicationContext(), Newview.class);
 startActivity(nameActivity);

使用以下代码。

Intent nameActivity =new Intent(HelloTableLayoutActivity.this,Newview.class);
 startActivity(nameActivity);

并在android清单文件中定义你的Newview类。

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

因为当你从主类调用Newview并在android清单文件中声明NewviewActvity类时,所以当你点击textview时,android会在android清单文件中找到Newview类,因为它不存在于那个清单文件中应用程序崩溃。