Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从另一个类(Android)设置TextView_Java_Android - Fatal编程技术网

Java 如何从另一个类(Android)设置TextView

Java 如何从另一个类(Android)设置TextView,java,android,Java,Android,我有此代码,但它不起作用(强制关闭) ,我在C#中使用它,但它在java中不起作用 ClassA c=新的ClassA(); c、 TextView1.setText(“测试”) 我需要从ClassB设置文本视图,可以吗 没有使用意图 因为意图需要重新启动活动,所有数据都将丢失 有人能为这个建议一个代码吗 我还可以从ClassA中的ClassB设置ClassA中的int x值吗 定义您的文本视图 private TextView1 txtView1; 在onCreate期间加载它 txtVie

我有此代码,但它不起作用(强制关闭) ,我在C#中使用它,但它在java中不起作用

ClassA c=新的ClassA(); c、 TextView1.setText(“测试”)

我需要从ClassB设置文本视图,可以吗 没有使用意图 因为意图需要重新启动活动,所有数据都将丢失

有人能为这个建议一个代码吗

我还可以从ClassA中的ClassB设置ClassA中的int x值吗

定义您的文本视图

private TextView1 txtView1;
在onCreate期间加载它

txtView1 = (TextView) findViewById(R.id.txtView1);
写一个二传

public void setTextOnTextView1(String text) {
  txtView1.setText(text);
}
在你的另一节课上,你现在可以

c.setTextOnTextView1("Hello");
是的,你能做到-

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");
只需将此文本设置为您的
文本视图
B类也应扩展
活动
,否则,
getIntent()
代码将不起作用。

试试这个

将此添加到活动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");

是的,它可以在不使用意图的情况下完成,使用静态方法/类的成员

从ClassA的静态方法中获取TextView对象,并在ClassA中类似地定义静态方法setX(intx)方法

比如说

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)

意图从类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);

希望这有助于在两个活动之间传递值,您可以使用以下共享首选项

在活动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");

    }
    }

在类a中创建一个函数returnThis()

ClassA returnThis()
{
  return this;
}

在classB中调用此函数,并使用返回的classA的引用集textView

@Medo尝试在ANDROID中的两个活动之间搜索
传递数据
引用此函数您愿意提供日志cat跟踪吗?如果视图不可见,您是否放大了视图?日志跟踪无法在此处显示。很抱歉