不能在android中调用另一个类的方法

时间:2015-02-04 08:11:24

标签: java android android-activity

我尝试从Route类调用该方法,但是当我单击“提交”按钮时,应用已停止了

public class MainActivity extends FragmentActivity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Button button = (Button) findViewById(R.id.submit);
      final TextView source;
    final TextView destination;
      source = (TextView) findViewById(R.id.source);
      destination = (TextView) findViewById(R.id.destination);

      button.setOnClickListener(new View.OnClickListener() {
          public void onClick(View v) {
            Routes routes = new Routes();
            routes.start();   
          }
      }); 

Routes.java

package com.example.newproject;

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

public class Routes extends Activity {


    public void  start(){
           setContentView(R.layout.routes);

}




}

这是对的吗?

package com.example.newproject;

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

public class Routes  {


    public void  start(){

        String selva="This is my name";
    Toast.makeText(getApplicationContext(), selva, Toast.LENGTH_LONG).show();  


}




}

它还会显示错误消息

2 个答案:

答案 0 :(得分:2)

第二个类是一个活动,需要一个onCreate()方法。 如果你想制作一个普通的课程,你必须删除"扩展活动"。 然后你可以像你一样调用方法。

答案 1 :(得分:-1)

如果要启动新的Activity,请在onClick方法中调用startActivity(new Intent(MainActivity.this, Routes.class))。它将自动调用路由类中的onCreate()方法,因此请勿忘记覆盖它,否则您的活动将无法启动。