2013-02-12 68 views
5

我需要将(非)活动类中的变量传递给名称(android活动)类。在文本视图中显示传递的变量值。请告诉我该示例需要做什么。如何将它传递给机器人活动将非活动类之间的变量传递给android活动类

public class around(non-activity class) 
{ 
    String name = "arjun"; 
    //how to pass this name value to an below activity 
    nameget nam = new nameget(); 
    String new = nam.get(name); 
} 

public class nameget extends Activity(android activity class) 
{ 
    public String get(String name) 
    { 
     String got = name; 
     TextView t1 = (TextView)findViewById(R.id.textView1); 
     t1.setText(name); 
    } 
} 
+0

问题是,在哪里定义类,并在哪个上下文中实例化生活,你想要“传递”“变量”。另外,变量不能被_passed_,他们可能是_shared_;另一方面,可以传递_values_和_references_。那么你对此有什么特别的要求。 – 2013-02-12 09:20:10

+0

你有这个类的实例吗?如果是,请使用getter来检索字符串并在setText中使用它。例如t1.setText(around.getString()); – Tobrun 2013-02-12 09:20:34

+0

该课是一个asynctask?还是只是叫?如果你只是调用它,你可以像在任何普通的方法调用中那样返回值。只要做个吸气剂。 – Gjordis 2013-02-12 09:21:10

回答

2

试试这个,你的活动类中声明你的非活性类。

public class around(non-activity class) 
{ 
Public static String name; 
name = "arjun"; 
//how to pass this name string to an below activity 
} 

public class nameget extends Activity(android activity class) 
    { 
    around ar = new around(); 
    //declare non activity class here 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
TextView t1 = (TextView)findViewById(R.id.textView1); 
t1.setText(ar.name); 
} 
} 
2

试试这个

public class around(non-activity class) 
    { 
    public static String name = "arjun"; 
     //how to pass this name string to an below activity 
    } 

    public class nameget extends Activity(android activity class) 
    { 
     TextView t1 = (TextView)findViewById(R.id.textView1); 
//your class name around 
     t1.setText(around.name); 
    } 
+0

你有你的答案 – 2013-02-12 09:22:34

1

你可以简单地生成非活性类喜欢你的变量的getter和setter ..

public String getName(){ 
    return name; 
} 

public void setName(String name){ 
    this.name = name; 
} 
现在从任何地方

,你可以得到名称/设定值..

Arround ar = new Arround() 
ar.setName("Aruva"); //To set name 
ar.getName(); // To get 

在你的活动不喜欢..

t1.setText(ar.getName().toString()); 

而您的非活动类可以创建任何地方,无论是在相同的包或在src文件夹中的另一个包..

0

很奇怪的问题,因为你的设计在这里不明确。您通过意向束将参数传递给活动。你只能在开始活动时通过它们。活动只能在一些Context对象上启动(99%的情况下为其他Activity)。

只要您有权访问上下文,就可以从某个非活动类开始活动。如果按下后退按钮,您将开始的活动需要知道是谁的父母。

当你要同时启动它看到的数据传送到活动: How do I pass data between Activities in Android application?

当它是不是这种情况下 - 请描述你的情况你有什么非活性类,它是如何与你想活动将数据传递给。

0

这种问题的最佳方法是使用事件驱动架构。 你可以使用任何事件库,我会建议eventBus

(在eventbus范围) 创建一个名为NameChangedEvent与name属性

您的活动会听它,而主动sticky event(在恢复 - 暂停播放)。 当名称发生变化时,您将发送此事件

EventBus.getDefault().post(new NameChangedEvent(name));

您的活动将抓住这一点,并更新视图。它也可以读取这个事件的最新版本onCreate方法。

这当然是一个矫枉过正,如果你只是想为1场做到这一点。但许多应用程序需要处理数据更改并更新其UI和事件是最好的方式(imho)。这可以帮助你松散地耦合你的应用逻辑和用户界面。

0

如果保存类型“类”

实例的变量更容易:(玩得开心)

Class<?> MyClassSave; 

MyClassSave = MainActivity.class; 

而且你可以从的.class

你可以得到所有的值公共/私人(静态),或传递捆绑/可序列化/对象

相关问题