将非活动类之间的变量传递给android活动类

时间:2013-02-12 09:16:33

标签: java android android-activity textview

我需要将一个变量从(非)活动类传递给一个nameget(android activity)类。在文本视图中显示传递的变量值。请通过此示例告诉我需要做什么。如何将其传递给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);
    }
}

6 个答案:

答案 0 :(得分: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);
    }

答案 1 :(得分: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 :(得分: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文件夹中的另一个包中创建。

答案 3 :(得分:0)

这是一个很奇怪的问题,因为你的设计在这里并不清楚。您可以通过intent bundle将参数传递给activity。您只能在启动活动时传递它们。活动只能在某些Context对象上启动(99%的情况下是其他Activity)。

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

如果要在启动时将数据传递给活动,请参阅: How do I pass data between Activities in Android application?

如果不是这种情况 - 请描述您的案例您的非活动类是什么以及它与您希望传递数据的活动有何关联。

答案 4 :(得分:0)

解决此类问题的最佳方法是使用事件驱动架构。 您可以使用任何事件库,我建议eventBus

(在eventbus的范围内) 使用名称属性

创建一个名为NameChangedEvent的sticky event

您的活动会在活动时收听它(在恢复时 - 暂停时)。 更改名称时,您将发送此活动 e.g。

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

您的活动会捕获此内容并更新视图。它还可以在onCreate方法中读取此事件的最新版本。

如果你只想为1场做这个,那么这当然是一种矫枉过正。但许多应用程序需要处理数据更改并更新其UI,并且事件是执行此操作的最佳方式(imho)。这有助于您松散地结合您的应用程序逻辑和UI。

答案 5 :(得分:0)

如果您保存类型" Class"

的变量,则更容易

示例:(玩得开心)

Class<?> MyClassSave;

MyClassSave = MainActivity.class;

您可以从.class

获取所有值

你可以公开/私人(静态),或传递bundle / serializable / Obj