我是Android的新手,我已阅读Android文档中的上下文以及下面给出的链接
如果假设我有一个类并且它包含一些方法,例如考虑下面给出的代码片段。
Sample1.java
implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'
Sample2.java
class Sample1 extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_login);
Sample2.function1(Sample1.this);
}
public void func1()
{
//...
}
public void func2()
{
//...
}
public void func3()
{
//...
}
}
如果怀疑是错误的,请原谅我。我想了解基础知识。任何帮助都会很明显,并提前感谢。
答案 0 :(得分:1)
它不可能,你不能这样做,因为在静态方法中,你只能调用另一个静态方法,
答案 1 :(得分:1)
是的,即使您使用默认的java类,也可以这样做,然后您也可以将该类的函数调用到另一个活动中。如果您使用关键字static,则不会发生冲突。
答案 2 :(得分:0)
顾名思义,它是应用程序/对象当前状态的上下文。它允许新创建的对象了解正在发生的事情。通常,您可以通过调用它来获取有关程序其他部分(活动和包/应用程序)的信息。
您可以通过调用getApplicationContext(),getContext(),getBaseContext()或this(在从Context扩展的类中,例如Application,Activity,Service和IntentService类)来获取上下文。
上下文的典型用法:
创建新对象:创建新视图,适配器,监听器:
TextView tv = new TextView(getContext()); ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(),...); 访问标准公共资源:LAYOUT_INFLATER_SERVICE,SharedPreferences:
等服务context.getSystemService(LAYOUT_INFLATER_SERVICE) getApplicationContext()。getSharedPreferences( name , mode ); 隐式访问组件:关于内容提供者,广播,意图
getApplicationContext()。getContentResolver()。query(uri,...);
答案 3 :(得分:0)
如果两者都是静态函数那么可能,静态方法在子类中继承,但它不是多态。
class Sample1 extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_login);
Sample2.function1(Sample1.this);
}
public static void func1()
{
//...
}
public static void func2()
{
//...
}
public staic void func3()
{
//...
}
}
after that you use `enter code here`
class Sample2 extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_login);
}
public static void function1(Context context){
//can I access all the public methods present in sample1 class
}
}
答案 4 :(得分:-1)
是的,你可以。请考虑下面的Sample2.java文件。
class Sample2 extends AppCompatActivity {
public static Sample2 sample2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_login);
sample2 = this;
}
public static Sample2 function1(Context context){
//can I access all the public methods present in sample1 class
return sample2;
}
}