当前位置: 首页 > 面试题库 >

如何通过意图接收int

督宏旷
2023-03-14
问题内容

我正在通过一个Intent传递一个int,但是我不知道如何接收它,因为我必须从OnCreate方法中接收一个intent,但是如果我将其放置在那里,则无法将其与其余代码中的另一个int进行比较:我在这里发送意图:

public class HomeActivityPro extends ActionBarActivity {
EditText conttext = (EditText) findViewById ( R.id.texthome );
Button buttone = (Button) findViewById(R.id.buttone);
String maxom = conttext.getText().toString();
int maxam = Integer.parseInt(maxom);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_home);

    View.OnClickListener maxim = new View.OnClickListener() {
        @Override
        public void onClick (View view) {
            Intent wall = new Intent(HomeActivityPro.this, GuessOne.class);
            wall.putExtra("maxPressed", maxam);
            startActivity(wall);
        }
    };
    buttone.setOnClickListener(maxim);

在这里,我收到它:

public class GuessOne extends ActionBarActivity {
    int randone;
    int contone;
    Bundle bundle;
    int maxnumpre = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_guess_one);
    Intent wall = getIntent();
    int maxnumpre = wall.getIntExtra("maxPressed", 0);}

但是在onCreate方法之后,我必须这样做:

if (contone >= maxnumpre ){
            resultaone.setText("You Failed" + " " + maxnumpre);
            Toast.makeText(this, "You Failed", Toast.LENGTH_LONG).show();

        }

问题答案:

您需要获取在onCreate方法中传递的数据,而不是在声明中。

另外你不发送Bundle,正在发送StringIntent。所以,你需要得到StringIntent

像这样做

public class GuessOne extends ActionBarActivity {
    int randone;
    int contone;
    Bundle bundle;
    String maxPressed = "";
    int maxcont = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_guess_one);

        maxPressed = getIntent().getStringExtra("maxNumberPressed");
        try {
            maxCont = Integer.parseInt(maxPressed);
        }
        catch (NumberFormatException e) {
            e.printStackTrace();
        } 
    }

    //the rest of the code

还发送这样的数据

Intent wall = new Intent(HomeActivityPro.this, GuessOne.class);
wall.putExtra("maxNumberPressed", conttext.getText().toString());
startActivity(wall);


 类似资料:
  • 通知广播接收机: 谁能帮帮我吗?我不知道我做错了什么

  • 问题内容: 这是我的代码,但这是针对单个文件的解决方案。 我可以像下面的单个文件一样共享多个文件和上载吗? 问题答案: 是的,但是您需要使用而不是。 这绝对可以简化,但我在其中保留了一些内容,以便您可以分解所需的每个步骤。 更新 :从API 24开始,共享文件URI将导致FileUriExposedException。为了解决这个问题,您可以将compileSdkVersion切换为23或更低版本

  • 我正在尝试启动来打开应用程序中资产文件夹中的pdf。我已经读了几十个帖子,但仍然卡住了。显然,我需要先将pdf复制到sd卡,然后启动。还是不起作用。 我认为问题是启动,所以我只是尝试打开一个文件“example.pdf”,我使用以下代码复制到SD卡上: 这是我的LogCat输出。 除了在运行此代码时,我得到以下吐司(不是由我的应用程序生成的) “不支持的文档类型” 但是我可以通过安装的PDF查看应

  • 我有一个很奇怪的问题。 我正在发送广播并设置一些额外内容,但接收者没有收到: 发送: 并收到: 由于某些原因,downloadID为空。有什么提示吗? 谢谢

  • 我的活动从两个不同的接收两个。 一个< code>intent包含带附加值的< code>int值,另一个包含< code>String。我想区分接收者活动中的< code >意图。 有什么方法可以检查接收到的intent在extras或< code>String中是否有< code>int值? 请不要建议使用在同一活动中接收多个意图。