我有这个代码,但它不起作用(强制关闭) ,我在C#中使用它,但它在java中不起作用
ClassA c = new ClassA(); c.TextView1.setText( “测试”);
我需要设置ClassB的文本视图才能完成 不使用意图 因为Intent需要全部启动Activity并且所有数据都将丢失
任何人都可以为此建议代码
我也可以在ClassB中设置ClassA中的int x值
答案 0 :(得分:2)
是的,你可以做 -
Intent i = new Intent(classA.this, classB.class);
Bundle bundle = new Bundle();
bundle.putExtra("name For Identification", "Value);
i.putExtras(bundle);
startActivity(i);
在你的第二堂课中,我的意思是 B班
Bundle bundle = getIntent().getExtras("name for Identification");
String text = bundle.getString("name For Identification");
只需将此文字设置为TextView
并且 B类也应该扩展Activity
否则,getIntent()
代码将无效。
答案 1 :(得分:0)
在ClassA中
定义TextView
private TextView1 txtView1;
在onCreate
期间加载它txtView1 = (TextView) findViewById(R.id.txtView1);
写一个setter
public void setTextOnTextView1(String text) {
txtView1.setText(text);
}
在你的其他课程中,你现在可以
c.setTextOnTextView1("Hello");
答案 2 :(得分:0)
试试这个
在活动1中添加此内容
Intent myIntent = new Intent(Activity1.this, Activity2.class);
myIntent.putExtra("UserId",UserId);
myIntent.putExtra("UserName",UserName);
startActivity(myIntent);
在活动2中添加此内容
Intent intent = getIntent();
UserId=intent.getStringExtra("UserId");
UserName=intent.getStringExtra("UserName");
答案 3 :(得分:0)
是的,可以在不使用intent的情况下完成,使用静态方法/类
的成员从ClassA的静态方法获取TextView对象,并在ClassA中类似地定义静态方法setX(int x)方法
所以例如
class ClassA{
static TextView tv; //this should be intialized in your code via findViewByID or by code depneds
static int x;
static public TextView getTextView(){
return tv;
}
static public void setX(int xP){
x = xP;
}
}
从ClassB 你可以调用ClassA.getTextView()和ClassB.setX(12)
答案 4 :(得分:0)
意图从A类开始B级
Intent toClassB = new Intent(classA.this,classB.class);
toClassB.putExtra("StringId","value");
startActivity(toClassB);
//get value
Intent intent = getIntent();
String getValue = intent.getStringExtra("StringId");
//set text
textView.setText(getValue);
希望这会有所帮助
答案 5 :(得分:0)
要在两个活动之间传递值,您可以使用共享的首选项
在活动A中:
public class activityA extends Activity{
private final String MY_value = "value";//variable used for shared preference
@Override
public void onCreate(Bundle savedInstanceState)
{
SharedPreferences myPrefs = getBaseContext().getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString(MY_value, "xyz");
prefsEditor.commit();
}
}
在活动B中,您可以按如下方式检索该值:
public class activityB extends Activity{
private final String MY_value = "value";//variable used for shared preference
@Override
public void onCreate(Bundle savedInstanceState)
{
SharedPreferences myPrefs1 = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
roadworthynumber = myPrefs1.getString(MY_value, "value");
}
}
答案 6 :(得分:0)
在A类中创建函数returnThis()
ClassA returnThis()
{
return this;
}
在classB中调用此函数并使用返回的引用集classView的textView