繁体   English   中英

如何在扩展View的类中设置ContentView? (Android,Java)

[英]How do I setContentView in a class that extends View? (Android, Java)

因此,我正在制作一个android应用程序,当您打开该应用程序时,您将从主要活动开始。 按下播放按钮后,我创建了一个onclick侦听器,用于将内容视图设置为扩展View的另一个类。 通过在画布上绘画,该类游戏继续进行。 一旦用户输了游戏,我希望它将内容视图重置为我的主要活动。 有什么办法吗? 抱歉,如果这令人困惑,我对Java还是陌生的。 任何帮助将不胜感激。 谢谢!

如果要将信息从MainActivity发送到另一个类,并在将其初始化后返回信息,则可以使用startActivityForResult() ,如下所示:

startActivityForResult(new Intent("Example"), 1);

您必须在Manifest文件中声明意图"Example"

<activity
    android:name=".ExecuteExample" //Here the name of the Class in which you send the information
    android:label="Example" > 

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

因此,当用户输掉游戏时,您可以使用setResult函数(来自ExecuteExample )再次将新信息检索到MainActivity

setResult(RESULT_OK, example);

其中的example是您现在发送给MainActivity的意图的名称。 如何将信息设置为此新的Intent? 只需使用.putExtra()函数即可。 像这样:

example.putExtra("Score",0);
example.putExtra("Name","");

假设您要初始化的值是“ Score和之前玩过的用户的Name

最后,您必须检索从MainActivity类初始化的此信息,并创建一个新方法onActivityResult()

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
   if (requestCode == 1)
   {
      if(resultCode == RESULT_OK) 
      {

         int score = data.getIntExtra("Score");
         String name = datos.getStringExtra("Name");
      }
   }
}

希望对您有帮助!

您是否要加载活动? 您可以尝试以下代码:

Intent intent = new Intent(this, MainActivity.class);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM