誰かがgetExtra()
とputExtra()
をインテントにどのように使うべきか教えてもらえますか?実際には、文字列変数を持っています。たとえば、strという文字列データが格納されています。それでは、このデータをあるアクティビティから別のアクティビティに送信したいと思います。
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
String keyIdentifer = null;
i.putExtra(strName, keyIdentifer );
そしてSecondScreen.Javaに
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.table);
TextView userName = (TextView)findViewById(R.id.userName);
Bundle bundle = getIntent().getExtras();
if(bundle.getString("strName")!= null)
{
//TODO here get the string stored in the string variable and do
// setText() on userName
}
}
私はそれが非常に基本的な質問であることを知っていますが、残念ながら私はここで行き詰まっています。助けてください。
ありがとう、
編集:ここで私があるスクリーンから他のスクリーンへ受け渡そうとしている文字列は動的です。つまり、ユーザータイプにかかわらず文字列を取得するeditTextがあります。それからmyEditText.getText().toString()
の助けを借りて。入力した値を文字列として取得しているので、このデータを渡す必要があります。
ファイルを「置く」ためにこれを使用してください...
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
String strName = null;
i.putExtra("STRING_I_NEED", strName);
その後、値を取得するには、次のようにします。
String newString;
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras == null) {
newString= null;
} else {
newString= extras.getString("STRING_I_NEED");
}
} else {
newString= (String) savedInstanceState.getSerializable("STRING_I_NEED");
}
最初のScreen.Java
text=(TextView)findViewById(R.id.tv1);
edit=(EditText)findViewById(R.id.edit);
button=(Button)findViewById(R.id.bt1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
String s=edit.getText().toString();
Intent ii=new Intent(MainActivity.this, newclass.class);
ii.putExtra("name", s);
startActivity(ii);
}
});
セカンドスクリーンジャバ
public class newclass extends Activity
{
private TextView Textv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intent);
Textv = (TextView)findViewById(R.id.tv2);
Intent iin= getIntent();
Bundle b = iin.getExtras();
if(b!=null)
{
String j =(String) b.get("name");
Textv.setText(j);
}
}
}
最善の方法...
SendingActivity
Intent intent = new Intent(SendingActivity.this, RecievingActivity.class);
intent.putExtra("keyName", value); // pass your values and retrieve them in the other Activity using keyName
startActivity(intent);
受信アクティビティ
Bundle extras = intent.getExtras();
if(extras != null)
String data = extras.getString("keyName"); // retrieve the data using keyName
///データを受け取る最短の方法..
String data = getIntent().getExtras().getString("keyName","defaultKey");
//これにはapi 12が必要です。// 2番目のパラメーターはオプションです。 keyNameがnullの場合は、データとしてdefaultkey
を使用します。
これは私が使ってきたもので、ホップフルにそれは誰かを助けます..シンプルで効果的。
データを送る
intent = new Intent(getActivity(), CheckinActivity.class);
intent.putExtra("mealID", meal.Meald);
startActivity(intent);
データを入手する
int mealId;
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
if(bundle != null){
mealId = bundle.getInt("mealID");
}
乾杯!
Androidにintent
を実装するのは非常に簡単です。あるアクティビティから別のアクティビティに移動するには、2つのメソッドputExtra();
およびgetExtra();
を使用する必要があります。次に例を示します。
Intent intent = new Intent(activity_registration.this, activity_Login.class);
intent.putExtra("AnyKeyName", Email.getText().toString()); // pass your values and retrieve them in the other Activity using AnyKeyName
startActivity(intent);
AnyKeyName
パラメータから値を取得する必要があります。これを行うには、以下のコードが役立ちます。
String data = getIntent().getExtras().getString("AnyKeyName");
textview.setText(data);
必要に応じて、Intent
から受け取り値を簡単に設定できます。
ちょっとした補足:キーのためにあなた自身の名前を作成する必要はありません、Androidはこれらを提供します、f.ex。 Intent.EXTRA_TEXT
。受け入れられた答えを修正する:
Intent i = new Intent(FirstScreen.this, SecondScreen.class); String strName = null; i.putExtra(Intent.EXTRA_TEXT, strName);
その後、値を取得するには、次のようにします。
String newString; Bundle extras = getIntent().getExtras(); if(extras == null) { newString= null; } else { newString= extras.getString(Intent.EXTRA_TEXT); }
Intent intent = new Intent(view.getContext(), ApplicationActivity.class);
intent.putExtra("int", intValue);
intent.putExtra("Serializable", object);
intent.putExtra("String", stringValue);
intent.putExtra("parcelable", parObject);
startActivity(intent);
ApplicationActivity
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
if(bundle != null){
int mealId = bundle.getInt("int");
Object object = bundle.getSerializable("Serializable");
String string = bundle.getString("String");
T string = <T>bundle.getString("parcelable");
}
hasExtra()
を使用します。getStringExtra()
を直接使うことができます。データを渡す
intent.putExtra(PutExtraConstants.USER_NAME, "user");
データ取得
String userName;
if (getIntent().hasExtra(PutExtraConstants.USER_NAME)) {
userName = getIntent().getStringExtra(PutExtraConstants.USER_NAME);
}
ベストプラクティスとして常にキーを定数に入れます。
public interface PutExtraConstants {
String USER_NAME = "USER_NAME";
}
よりシンプル
送信側
Intent i = new Intent(SourceActiviti.this,TargetActivity.class);
i.putExtra("id","string data");
startActivity(i)
受信側
Intent i = new Intent(SourceActiviti.this,TargetActivity.class);
String strData = i.getStringExtra("id");
単純、最初の活動で -
EditText name= (EditText) findViewById(R.id.editTextName);
Button button= (Button) findViewById(R.id.buttonGo);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Main2Activity.class);
i.putExtra("name",name.getText().toString());
startActivity(i);
}
});
2番目の活動 -
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
TextView t = (TextView) findViewById(R.id.textView);
Bundle bundle=getIntent().getExtras();
String s=bundle.getString("name");
t.setText(s);
}
必要に応じてif/else条件を追加できます。
プッシュデータ
import Android.content.Intent;
...
Intent intent =
new Intent(
this,
MyActivity.class );
intent.putExtra( "paramName", "paramValue" );
startActivity( intent );
上記のコードはメインのactivity
の中にあるかもしれません。 "MyActivity.class
"は2番目に起動したいActivity
です。それはあなたのAndroidManifest.xml
ファイルに明示的に含まれていなければなりません。
<activity Android:name=".MyActivity" />
プルデータ
import Android.os.Bundle;
...
Bundle extras = getIntent().getExtras();
if (extras != null)
{
String myParam = extras.getString("paramName");
}
else
{
//..oops!
}
この例では、上記のコードはMyActivity.Java
ファイルの中にあります。
ガッチャ
このメソッドはstrings
のみを渡すことができます。 ArrayList
をListActivity
に渡す必要があるとしましょう。考えられる回避策は、カンマ区切りの文字列を渡してから、反対側で分割することです。
代替ソリューション
SharedPreferences
を使う
置く機能
etname=(EditText)findViewById(R.id.Name);
tvname=(TextView)findViewById(R.id.tvName);
b1= (ImageButton) findViewById(R.id.Submit);
b1.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
String s=etname.getText().toString();
Intent ii=new Intent(getApplicationContext(), MainActivity2.class);
ii.putExtra("name", s);
Toast.makeText(getApplicationContext(),"Page 222", Toast.LENGTH_LONG).show();
startActivity(ii);
}
});
getfunction
public class MainActivity2 extends Activity {
TextView tvname;
EditText etname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);
tvname = (TextView)findViewById(R.id.tvName);
etname=(EditText)findViewById(R.id.Name);
Intent iin= getIntent();
Bundle b = iin.getExtras();
if(b!=null)
{
String j2 =(String) b.get("name");
etname.setText(j2);
Toast.makeText(getApplicationContext(),"ok",Toast.LENGTH_LONG).show();
}
}
送る
startActivity(new Intent(First.this, Secend.class).putExtra("key",edit.getText.tostring));
get
String myData = getIntent.getStringExtra("key");
インテントオブジェクトに文字列を入れる
Intent intent = new Intent(FirstActivity.this,NextAcitivity.class);
intent.putExtra("key",your_String);
StartActivity(intent);
OnCreateメソッドのNextAcitvityは文字列を取得する
String my_string=getIntent().getStringExtra("key");
それは簡単で短い方法です
単純に静的変数を使用して編集テキストの文字列を保存し、その変数を他のクラスで使用できます。これがあなたの問題を解決することを願っています
最初に文字列を置く
Intent secondIntent = new Intent(this, typeof(SecondActivity));
secondIntent.PutExtra("message", "Greetings from MainActivity");
その後それを検索
var message = this.Intent.GetStringExtra("message");
それで全部です ;)
At FirstScreen.Java
Intent intent = new Intent(FirstScreen.this, SecondScreen.class);
String keyIdentifier = null;
intent.putExtra(strName, keyIdentifier);
SecondScreen.Javaで
String keyIdentifier;
if (savedInstanceState != null)
keyIdentifier= (String) savedInstanceState.getSerializable(strName);
else
keyIdentifier = getIntent().getExtras().getString(strName);