根据填充的editText数量打开另一个活动

时间:2018-10-02 21:43:16

标签: java android android-studio

app的{​​{1}}包含6个MainActivity字段和一个editText。还有另外5个活动,名为buttonActivity2等。现在,当用户在Activity3字段中输入名称并按editText时,{{1} }应该找出要填充的button个字段的数量,然后打开活动名称中带有相应数字的活动。

示例:

  • 如果仅填写一个字段,则会出现app,并说更多球员
  • 如果填写了两个字段,则editText将打开toast
  • 如果填写了三个字段,app将打开Activity2,依此类推。

现在,解决问题。我错过了一些东西,也找不到。这是MainActivity.java

app

}

日志显示了确切的数字,有些不正常...

2 个答案:

答案 0 :(得分:1)

这里是您的点击监听器,为简洁起见,省略了switch

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        int filledFileds = countFilledFields();
        Log.d("filled", String.valueOf(filledFileds));
        Class newClass = MainActivity.class;

        switch (filledFileds){
            ...
        }

        Intent intent = new Intent(MainActivity.this, newClass);
    }

问题就在最后:您创建了一个Intent对象……但您并未对其进行任何操作。可能您刚刚忘记了一个startActivity()通话:

Intent intent = new Intent(MainActivity.this, newClass);
startActivity(intent);

此外,回头看一看,您在用户仅输入一个EditText的情况下就遇到了问题。如所写,您仍将尝试启动一个新活动(您将只启动同一MainActivity的新副本,这可能是个坏主意)。更好的主意是仅在用户填写足够的EditTexts时开始新活动:

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        int filledFileds = countFilledFields();
        Log.d("filled", String.valueOf(filledFileds));
        Class newClass = null;

        switch (filledFileds){
            ...
        }

        if (newClass != null) {
            Intent intent = new Intent(MainActivity.this, newClass);
            startActivity(intent);
        }
    }

答案 1 :(得分:1)

您缺少一件事:

 startActivity(intent);