Android startActivity无效

时间:2018-01-11 16:51:14

标签: java android android-intent

我的应用程序出现小问题。 startActivity(Intent intent)无效。

    switch (id) {
        case R.id.action_add:
            if (auth.getCurrentUser() != null) {
                if (vf.getDisplayedChild() > 0 && vf.getDisplayedChild() < 3) {
                    Intent intent = new Intent(MainActivity.this, SubmitActivity.class);
                    intent.putExtra("category", vf.getDisplayedChild());
                    startActivity(intent);
                    Toast.makeText(this, "You are about to create record", Toast.LENGTH_SHORT).show();
                }
            }
            break;
        case R.id.action_save:
            saveList("monuments", monument_data);
            saveList("ski_resorts", ski_data);
            Toast.makeText(this, "Data saved for offline use", Toast.LENGTH_SHORT).show();
            break;
    }

实际上,有人应该简单地说这句话的条件没有被提供,但事实上,startActivity之后的敬酒表示声明是正确的。我也打算单击framelayout上的recyclerview适配器,但这里的意图也不起作用。

我还可以提一下,我有共同对象动画的意图(不是同一个意图)。

任何人都知道出了什么问题?切换语句中的意图(如上所示)一直有效,直到我将意图添加到recyclerview中,请帮忙。

EditActivity:

public class EditActivity extends AppCompatActivity {

FirebaseAuth auth;
DatabaseReference ref, target;
StorageReference storage;

ProgressDialog dialog;

@BindView(R.id.imageView8)
ImageView main_image;
@BindView(R.id.input_title)
EditText title;
@BindView(R.id.input_desc)
EditText desc;
@BindView(R.id.input_location)
EditText location;
@BindView(R.id.switch1)
Switch isPublic;
@BindView(R.id.switch2)
Switch isFree;
@BindView(R.id.input_price)
EditText price;
@BindView(R.id.button3)
Button send;

public static final int PICK_IMAGE = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit);
    ButterKnife.bind(this); . . . }}

SubmitActivity:

public class SubmitActivity extends AppCompatActivity {

FirebaseAuth auth;
DatabaseReference ref, target;
StorageReference storage;

ProgressDialog dialog;

@BindView(R.id.imageView8)
ImageView main_image;
@BindView(R.id.input_title)
EditText title;
@BindView(R.id.input_desc)
EditText desc;
@BindView(R.id.input_location)
EditText location;
@BindView(R.id.switch1)
Switch isPublic;
@BindView(R.id.switch2)
Switch isFree;
@BindView(R.id.input_price)
EditText price;
@BindView(R.id.button3)
Button send;

public static final int PICK_IMAGE = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_submit);
    ButterKnife.bind(this); . . . }}

此部分使用&#34; intent&#34;选择选项时出现:

  

01-11 18:37:13.918 22224-22239 /? I / ActivityManager:在显示0上从uid 10883开始u0 {flg = 0x8000 cmp = com.ready.slovakia / .SubmitActivity(has extras)}    01-11 18:37:14.122 22224-22251 /? I / WindowManager:获得焦点:Window {8f13679 u0 com.ready.slovakia / com.ready.slovakia.MainActivity}

2 个答案:

答案 0 :(得分:1)

根据我们关于聊天和调试的讨论,这是问题所在:

第{78}行SubmitActivity.java if (auth.getCurrentUser() != null) finish();,用户通过身份验证并登录后即可完成活动。它应该是if (auth.getCurrentUser() == null) finish();

但理想情况下,此问题不会出现,因为您在MainActivity.java的第390行检查相同的条件,这将阻止意图在用户未登录时启动SubmitActivity

答案 1 :(得分:0)

请检查SubmitActivity中的布局。您是通过以下方式设置内容:setContentView()吗?很可能你的活动已经开始,但没有显示任何内容,因此它是不可见的。