onCreate()方法中,我们可以使用setContentView(R.layout.something)将布局与活动关联。无论如何,我以后可以检索something进行活动吗?

我知道我可以使用this.findViewById(android.R.id.content).getRootView()获取活动的内容视图,但是不确定是否从那里可以获取something

最佳答案

一般情况下,如果要解决所有问题,请执行以下操作:

public class BaseActivity extends AppCompatActivity {

    private int layoutId;

    @Override
    public void setContentView(int layoutResID) {
        this.layoutId = layoutResID;
        super.setContentView(layoutResID);
    }

    protected String getLayoutName() {
        return getResources().getResourceEntryName(this.layoutId);
    }
}

public class MainActivity extends BaseActivity {

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

        Log.d("TAG", getLayoutName());
    }
}


或者您可以简单地这样做:

public class MainActivity extends AppCompatActivity {

    private String layoutName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.layoutName = getResources().getResourceEntryName(R.layout.activity_main);

        Log.d("TAG", layoutName);
    }
}

07-26 09:31