2017-09-03 21 views
0

私はAndroidが初めてです。私はActivityを拡張する基本Activityクラス(MainActivity.java)を持っています。だから私はここでインテントを初期化することができます。 connectionClass.javaで MainActivity.javaAndroidでアクティビティクラス以外のインテント値を取得する方法

Intent myIntent = new Intent(MainActivity.this, ConnectionClass.class); 
myIntent.putExtra("ServerName", ServerName); 
startActivityForResult(myIntent, 1); 

私は継承されないクラスのConnectionClassを持っています。しかし、私はMainActivity.javaから値にアクセスしたいと思います。したがって、このクラスは継承しません。アクティビティ& onCreateメソッド。しかし、私はこれをどのように行うことができます

public class ConnectionClass { 
    Bundle bundle = getIntent().getExtras(); 
     String ServerName = bundle.getString("ServerName"); 
} 

ConnectioClass.java

ConnectionClass.JavaにMainActivity.javaから値にアクセスする必要がありますか?

+1

アクティビティのインテントしか取得できません。他のクラスにパラメーターとして渡す必要があります。しかし、私はあなたが混乱していると思います.ConnectionClassがアクティビティではない場合、新しいインテントのみを作成するパラメータとして渡すことはできません。アクティビティはstartActivityForResultで開始できます。 –

答えて

0

「ServerName」が固定値であるか、毎回変化するのか、それとも一種の値プールであるのかわかりません。最初のケースか3番目のケースの場合は、SharedPreferencesを使用することをお勧めします。これは比較的小さなキー値のデータストレージです。あなたはその中にデータを保存することができます。削除されない限り、保存されたアプリは永久保存されます。したがって、MainActivityにデータを保存し、必要なときにクラス内の値をフェッチすることができます。

あなたがここにチュートリアルを見つけることができます:あなたは

public class ConnectionClass { 
String serverName; 
public ConnectionClass(String serverName){ 
this.serverName=serverName; 
} 
} 

以下のようなあなたの活動にConnectionClassから新しいオブジェクトをインスタンス化しているときhttps://developer.android.com/training/basics/data-storage/shared-preferences.html

0

を、あなたはクラスにサーバー名を渡すことができ、あなたの活動にあなたが持っています次のようなものです:

Bundle bundle = getIntent().getExtras(); 
String ServerName = bundle.getString("ServerName"); 
ConnectionClass connection=new ConnectionClass(ServerName); 
関連する問題