如何使用" findViewById"在android studio 2.3.1中?

时间:2017-04-28 11:38:42

标签: android findviewbyid

我使用的是android studio 2.3.1,并且没有" findViewById"当使用按钮和setOnClickListener为按钮时!

并使用此:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launcher);
        findViewById(R.id.button2);
        BTN_PROGRESS.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                doWork();
            }
        });
    }

    @Override
    public View findViewById(@IdRes int id) {
        BTN_PROGRESS = (Button) findViewById(R.id.button2);
        PRG_MAIN = (ProgressBar) findViewById(R.id.progressBar);
        return super.findViewById(id);
    }

    private void doWork() {
        // my code
    }
}

运行应用程序时没有发生错误!但应该强行关闭! 怎么处理这个问题?

1 个答案:

答案 0 :(得分:2)

findViewById已在Activity类上定义,并且按预期工作。你不需要覆盖它。

您的应用程序因Stackoverflow崩溃,因为您正在进行无限递归

因此,可以调用您的方法private void findViews(),然后执行此操作

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_launcher);
    findViews();
    BTN_PROGRESS.setOnClickListener