Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何在android中实例化一个类,它也是一个活动?_Java_Android_Constructor_Instantiation_Oncreate - Fatal编程技术网

Java 我如何在android中实例化一个类,它也是一个活动?

Java 我如何在android中实例化一个类,它也是一个活动?,java,android,constructor,instantiation,oncreate,Java,Android,Constructor,Instantiation,Oncreate,在android中,我如何为类创建一个构造函数,它也是一个活动 我的问题是,我想要两个活动类(estimateFare和Mapping),它们都将数据发送到活动类(CalculateFare)。映射从实时网络信息获取数据,而estimateFare从用户输入获取数据。我希望CalculateFare能够使用任一类的数据来执行计算,尽管我在onCreate方法和CalculateFare的构造函数中遇到了问题。当在应用程序运行时调用该类时,我在LogCat中得到以下消息: Unable to in

在android中,我如何为
创建一个
构造函数
,它也是一个
活动

我的问题是,我想要两个活动类(estimateFare和Mapping),它们都将数据发送到活动类(
CalculateFare
)。映射从实时网络信息获取数据,而estimateFare从用户输入获取数据。我希望
CalculateFare
能够使用任一类的数据来执行计算,尽管我在
onCreate
方法和
CalculateFare
的构造函数中遇到了问题。当在应用程序运行时调用该类时,我在
LogCat
中得到以下消息:

Unable to instantiate activity ComponentInfo. 
CalculateFire中的一段代码如下:

    public class CalculateFare extends Activity {
        TextView t;
        static long length;
        static int dist;
        static int mMonth;
        static int mDay;
        public static double fare;
        double rate1 = 0, rate2a, rate2b, rate3, rate4a, rate4b;
        int remDist = 0;
        double remLength;
        private static int TTS_DATA_CHECK = 1;
        private TextToSpeech tts = null;
        private boolean ttsIsInit = false;



public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fare);

}

public CalculateFare(long length, int dist, int mMonth, int mDay)
{
}

public static void setLength(long l)
{
    length = l;
}

public static void setDist(int d)
{
    dist = d;
}

public static void setDate(int m, int d)
{
    mMonth = m;
    mDay = d;
}

public void calc()
{

任何值得赞赏的建议

都可以将数据移动到一个单独的类中,该类根本不是活动,而是在活动之间共享的。数据可以结构化为来自用户的数据和来自网络的数据。例如,有关在活动之间共享数据的方法,请参见


当框架在需要活动时创建另一个实例时,实例化碰巧是活动的CalculateFare对象将没有帮助。

将数据移动到一个单独的类中,该类根本不是活动,而是在活动之间共享的。数据可以结构化为来自用户的数据和来自网络的数据。例如,有关在活动之间共享数据的方法,请参见

当框架在需要活动时创建另一个实例时,实例化碰巧是活动的CalculateFare对象将没有帮助

在android中,我如何为同时也是活动的类创建构造函数

你没有

我想要两个活动类(estimateFare和Mapping),它们都将数据发送到活动类(CalculateFare)

除了通过
startActivity()
外,这些类都不会相互接触。通过
Intent
extras或通过中央数据模型(如数据库)在活动之间传递数据

当在应用程序运行时调用该类时,我在LogCat中得到以下消息

这是因为您需要删除构造函数

在android中,我如何为同时也是活动的类创建构造函数

你没有

我想要两个活动类(estimateFare和Mapping),它们都将数据发送到活动类(CalculateFare)

除了通过
startActivity()
外,这些类都不会相互接触。通过
Intent
extras或通过中央数据模型(如数据库)在活动之间传递数据

当在应用程序运行时调用该类时,我在LogCat中得到以下消息


这是因为您需要删除构造函数。

活动不能有用户定义的构造函数,只有默认的构造函数;它们只能通过意图创建间接实例化。如果您需要在活动之间传递数据,可以通过将额外数据放入捆绑包来实现,例如:

bundle.putInt("dist",dist);
然后,您可以通过以下方式从bundle中提取数据:

int dist = bundle.getInt("dist");
在开始活动之前放置额外内容:

Intent i = new Intent(this, CalculateFare.class);
Bundle b = new Bundle();

b.putInt("dist",dist);
i.putExtras(b);
startActivity(i);
然后阅读onCreate方法中的附加内容:

public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);

   Bundle b = getIntent().getExtras();
   int dist;

   if (b != null)
   {
      dist = b.getInt("dist");
   }
}

活动不能有用户定义的构造函数,只能有默认构造函数;它们只能通过意图创建间接实例化。如果您需要在活动之间传递数据,可以通过将额外数据放入捆绑包来实现,例如:

bundle.putInt("dist",dist);
然后,您可以通过以下方式从bundle中提取数据:

int dist = bundle.getInt("dist");
在开始活动之前放置额外内容:

Intent i = new Intent(this, CalculateFare.class);
Bundle b = new Bundle();

b.putInt("dist",dist);
i.putExtras(b);
startActivity(i);
然后阅读onCreate方法中的附加内容:

public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);

   Bundle b = getIntent().getExtras();
   int dist;

   if (b != null)
   {
      dist = b.getInt("dist");
   }
}

我试图在其内部实例化活动,以将其传递给另一个类的方法。我忘记了记忆错误。因此,我将该方法放在活动本身中,并将其作为此对象传递。

我尝试在活动本身中实例化活动,以将其传递给另一个类的方法。我忘记了记忆错误。因此,我将该方法放在活动本身中,并将其作为此对象传递。

onCreate
需要一个
@Override
@commonware谢谢,非常感谢:)而
onCreate
需要一个
@Override
@commonware谢谢,非常感谢:)嘿,谢谢:)我还有一个问题,我应该在onCreate方法中做检索语句吗?是的。我已经把它添加到我的答案中了。嘿,谢谢:)我还有一个问题,我应该在onCreate方法中做检索语句吗?是的。谢谢,非常感谢:)谢谢,非常感谢:)