2017-08-11 20 views
0

このトピックについて既に質問されている他の質問がありますが、私はすでに多くを調べて回答を試みましたが、インテントを使用して1つのビューから別のビューにデータを渡す

MainActivityとMain2Activityという2つのアクティビティが用意されています(名前はそれぞれ1と2です)。それぞれにそれぞれのXMLファイルがあります。私がしようとしているのは、ユーザが2のEditTextフィールドに何かを入力させてからEnterを押すと、入力した内容が1のTextViewに表示されます。まず、ボタンは動作しません。最終的な目標は、ポップアップするキーボードのEnterキーを押してタップすると1になるようにすることです。ボタンをスキップしてEnterキーにまっすぐ進むと簡単です。

ご迷惑をおかけして申し訳ございません。私は(関連する)コードだけでなく、いくつかのスクリーンショットを以下に載せます。ありがとうございました。

2(Main2Activity)のためのJavaコード:1(MainActivity)用

public class Main2Activity extends AppCompatActivity { 

    EditText et; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     et = (EditText) findViewById(R.id.editText); 
    } 

    EditText text; 

    public void CLICK_THIS (View v) 
    { 
     Intent intent = new Intent(); 
     intent.putExtra("TextValue", et.getText().toString()); 
     intent.setClass(Main2Activity.this, MainActivity.class); 
     startActivity(intent); 
    } 

    Intent intent = getIntent(); //i honestly forgot what this line is doing here 
//i think it's here from some other thing i was trying to do and i just forgot to delete it. 
} 

Javaコード:

protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     view = (ImageView) findViewById(R.id.imageView3); 
     backgroundImageName = String.valueOf(view.getTag()); 

     TextView text = (TextView) findViewById(R.id.textView2); 
     String s = getIntent().getStringExtra("TextValuie"); 
     text.setText(s); 
    } 

スクリーンショット1(これはMainActivityは、(1)のように見えるものです):

強調表示されているテキストは、TextViewの位置を示すことに過ぎません。それは「ここにはない」と言われています。 image 1

スクリーンショット2(これはMain2Activityは(2)のように見えるものです):

image 2

スクリーンショット3(これはキーボードだけを示して)(最終的には、ユーザが「あなたを入力に何かを入力しチェックマークを押すと、ハイライトされたテキストが1になっている場所に表示され、2のボタンをクリックする代わりに表示されます)。もし誰かを混乱させてしまったら、もっと欲しい情報を求めてください。代わりに「TextValue」

  • の間違ったラベルを使用して入力を取得されているすべての「TextValuie」の

    image 3

  • +0

    あなたが試したことと「どれも働いていない」ということを説明してください。余分な名前の 'TextValue'を作成していますが、' TextValuie'として取得しようとしています。 – CommonsWare

    +1

    アクティビティ1(MainActivity)の入力ミスがあります。 'String s = getIntent()。getStringExtra(" TextValuie ");'。それは 'TextValue'ですか? – rckrd

    +1

    アクティビティ2の結果をアクティビティ1に取得する場合は、[this](https://developer.android.com/training/basics/intents/result.html)を参照してください。 –

    答えて

    1
    • まず他の事は、あなたがボタンの上のEditTextをクリックしてテキストを入力していることです入力された値を取得できますか?デフォルトは空の文字列ですか?

    いつでも、アクティビティから戻ってくるデータを表示するために、デバッグして、ブレークポイントをインテントに置くことができます。

    +0

    それは単純だとは思いません。私は間違いがどれほど愚かであるかという言葉はない。どうすれば同じことをすることができるのかわかりますが、ボタンをクリックする代わりに、ユーザーが3番目の画像でそのチェックマークを押したりクリックしたりすると発生しますか? –

    関連する問題