簡體   English   中英

在非活動類與Android活動類之間傳遞變量

[英]Pass variable between non-activity class to android activity class

我需要將變量從(非活動類)傳遞到nameget(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);
    }
}

嘗試這個

  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);
    }

嘗試此操作,在您的活動類中聲明您的非活動類。

 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);
 }
 }

您可以簡單地在非活動類中為變量生成getter和setter。

public String getName(){
  return name;
}

public void setName(String name){
   this.name = name;
}

現在,您可以從任何地方獲取/設置名稱as的值。

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

在您的活動中喜歡..

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

您的非活動類可以在同一軟件包中或在src文件夾中的其他軟件包中的任何位置創建。

相當奇怪的問題,因為此處的設計不清楚。 您可以通過意圖包將參數傳遞給活動。 您只有在開始活動時才能通過它們。 活動只能在某些Context對象上啟動(在99%的情況下是其他Activity)。

您可以從某個非活動類開始活動,只要您可以在那里訪問上下文即可。 在按下后退按鈕的情況下,您將要開始的活動需要知道誰是父母。

如果要在啟動時將數據傳遞給活動,請參閱: 如何在Android應用程序的“活動”之間傳遞數據?

如果不是這種情況,請說明您的情況是什么是非活動類,以及它與要將數據傳遞到的活動之間的關系。

解決此類問題的最佳方法是采用事件驅動架構。 您可以使用任何事件庫,建議使用eventBus

(在eventbus的范圍內)使用名稱屬性創建一個名為NameChangedEvent的粘性事件

活動時(恢復-暫停時),您的活動將監聽它。 名稱更改時,您將分派此事件,例如

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

您的活動將抓住這一點並更新視圖。 它也可以讀取此事件的最新版本onCreate方法。

如果您僅嘗試1個字段,這當然是一個過大的殺傷力。 但是許多應用程序需要處理數據更改並更新其UI,並且擁有事件是實現此目的的最佳方法( imho )。 這可以幫助您輕松地將應用邏輯和UI結合在一起。

如果保存類型為“ Class”的變量,則更容易

示例:(玩得開心)

Class<?> MyClassSave;

MyClassSave = MainActivity.class;

您可以從.class獲取所有值

您可以公開/私有(靜態),也可以通過捆綁/可序列化/ Obj

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM