6

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

6 回答 6

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);
    }
于 2013-02-12T09:20:09.393 回答
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);
 }
 }
于 2013-02-12T09:22:15.503 回答
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 文件夹中的另一个包中的任何位置创建。

于 2013-02-12T09:28:10.500 回答
0

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

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

如果您想在启动时将数据传递给活动,请参阅: 如何在 Android 应用程序中的活动之间传递数据?

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

于 2013-02-12T09:30:34.840 回答
0

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

(在 eventbus 范围内)创建一个名为 NameChangedEvent 的粘性事件,并带有 name 属性

您的活动将在活动时收听它(恢复时 - 暂停时)。更改名称时,您将调度此事件,例如

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

您的活动将捕捉到这一点并更新视图。它还可以读取此事件的最新版本 onCreate 方法。

如果您只想为 1 个字段执行此操作,这当然是一种矫枉过正。但是许多应用程序需要处理数据更改并更新其 UI,并且拥有事件是最好的方法(我直言)。这可以帮助您松散地耦合您的应用程序逻辑和 UI。

于 2013-02-12T09:36:28.123 回答
0

如果保存“类”类型的变量会更容易

示例:(玩得开心)

Class<?> MyClassSave;

MyClassSave = MainActivity.class;

您可以从 .class 获取所有值

您可以将公共/私有(静态)设为公开/私有(静态),或传递给 bundle/serializable/Obj

于 2015-05-18T08:03:55.337 回答