从非 activity java class 操作主要 activity 元素
Manupulate main activity elements from non-activity java class
我想从另一个 java class 操纵主要 activity 元素,例如 TextView 或 Radiobutton。还可以获取有关文本的信息,例如 getText() 函数。
我该怎么做?
public class main_activity extends AppCompatActivity {
Button query;
BusTimer bus_timer = new BusTimer();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.main_activity);
query=(Button) findViewById(R.id.b_sorgu);
query.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bus_timer.onCreate(savedInstanceState);
}
});
}
public class BusTimer extends Activity{
TextView cMeter;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
cMeter = (TextView) findViewById(R.id.cMetre);
cMeter.setText("Hi");
}
我这样试过,但没用。有帮助吗?
有 2 种方法可以从不同的地方访问元素和函数 class
- 使用静态元素
- 使用构造函数
你不应该扩展 Activity 除非它真的是一个 activity 而不仅仅是一个 POJO。
您需要做的是将 activity 作为参数传递给另一个 class 并将其用于 findViewById:
BusTimer bus_timer = new BusTimer(this);
public class BusTimer {
TextView cMeter;
public BusTimer(Activity activity){
cMeter = (TextView) activity.findViewById(R.id.cMetre);
cMeter.setText("Hi");
}
}
我想从另一个 java class 操纵主要 activity 元素,例如 TextView 或 Radiobutton。还可以获取有关文本的信息,例如 getText() 函数。 我该怎么做?
public class main_activity extends AppCompatActivity {
Button query;
BusTimer bus_timer = new BusTimer();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.main_activity);
query=(Button) findViewById(R.id.b_sorgu);
query.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bus_timer.onCreate(savedInstanceState);
}
});
}
public class BusTimer extends Activity{
TextView cMeter;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
cMeter = (TextView) findViewById(R.id.cMetre);
cMeter.setText("Hi");
}
我这样试过,但没用。有帮助吗?
有 2 种方法可以从不同的地方访问元素和函数 class
- 使用静态元素
- 使用构造函数
你不应该扩展 Activity 除非它真的是一个 activity 而不仅仅是一个 POJO。 您需要做的是将 activity 作为参数传递给另一个 class 并将其用于 findViewById:
BusTimer bus_timer = new BusTimer(this);
public class BusTimer {
TextView cMeter;
public BusTimer(Activity activity){
cMeter = (TextView) activity.findViewById(R.id.cMetre);
cMeter.setText("Hi");
}
}