代码之家  ›  专栏  ›  技术社区  ›  Mohamed A.B

辅助活动问题无法从texView获取数据

  •  0
  • Mohamed A.B  · 技术社区  · 6 年前

    嗨,我有2个活动在我的应用程序,我会采取的数据从第一个活动,并插入到第二个他们。

    图片: 我有两个日期选择器来选择日期范围,我把它保存在texView和texView2上。

    enter image description here enter image description here

    代码:主要活动

    日期=(文本视图)findViewById(R。id.textView文件);

        selectDate2 = (Button) findViewById(R.id.button2);
        date2 = (TextView) findViewById(R.id.textView2);
    
        selectDate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                calendar = Calendar.getInstance();
                year = calendar.get(Calendar.YEAR);
                month = calendar.get(Calendar.MONTH);
                dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
                datePickerDialog = new DatePickerDialog(MainActivity.this,
                        new DatePickerDialog.OnDateSetListener() {
                            @Override
                            public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                                date.setText("Entrada: "+day + "/" + (month + 1) + "/" + year);
                            }
                        }, year, month, dayOfMonth);
                datePickerDialog.show();
            }
        });
    
    
        selectDate2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                calendar2 = calendar2.getInstance();
                year2 = calendar2.get(Calendar.YEAR);
                month2 = calendar2.get(Calendar.MONTH);
                dayOfMonth2 = calendar2.get(Calendar.DAY_OF_MONTH);
                datePickerDialog2 = new DatePickerDialog(MainActivity.this,
                        new DatePickerDialog.OnDateSetListener() {
                            @Override
                            public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                                date2.setText("Salida: "+day + "/" + (month + 1) + "/" + year);
                            }
                        }, year2, month2, dayOfMonth2);
                datePickerDialog2.show();
            }
        });
    

    活动2:

    package com.example.mand.consumirapirest;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class json extends AppCompatActivity {
    
        TextView tvJSON;
        TextView textView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_json);
            setTextView();
        }
    
        public void setTextView() {
            tvJSON = (TextView) findViewById(R.id.tvJSON);
            textView = (TextView) findViewById(R.id.textView);
    
            String s = textView.getText().toString();
    
            tvJSON.setText(s);
    
    
            //String text = textView.getText().toString();
            //return text;
        }
    
        /*public String getText()
        {
    
        }*/
    }
    

    有什么主意吗谢谢。。!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Oleg Golomoz    6 年前

    documentation .

    public void sendMessage(View view) {
        Intent intent = new Intent(this, SecondActivity.class);
        String message = date.getText().toString();
        String message2 = date2.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        intent.putExtra(EXTRA_MESSAGE_2, message2);
        startActivity(intent);
    }
    

    在SecondActivity中接收数据:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    
        // Get the Intent that started this activity and extract the string
        Intent intent = getIntent();
        String message = intent.getStringExtra(FirstActivity.EXTRA_MESSAGE);
        String message2 = intent.getStringExtra(FirstActivity.EXTRA_MESSAGE_2);
    
        // Capture the layout's TextView and set the string as its text
        TextView textView = findViewById(R.id.textView);
        textView.setText(message);
    }
    
        2
  •  1
  •   Boken forcewill    6 年前

    MainActivity.java ):

    Button button = findViewById(R.id.button);
    
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, SecondActivity.class);
    
            // Pass some data
            // Key "DATE_KEY" is static field from SecondActivity
            intent.putExtra(DATE_KEY, "20.03.2019");
    
            startActivity(intent);
        }
    });
    

    在第二个活动中( SecondActivity.java ):

    public class SecondActivity extends AppCompatActivity {
    
        static final String DATE_KEY = "DATE_KEY";
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);
    
            // Read passed data - String "20.03.2019"
            String date = getIntent().getStringExtra(DATE_KEY);
        }
    }
    
        3
  •  1
  •   tendai    6 年前

    使用 startActivityForResult 当调用第二个活动时,则在第二个活动中使用 setResult 要将选定的值带回第一个活动,请执行以下操作:

    在FirstActivity中:

    void openSecondActivity(){
        Intent intent = Intent(context, SecondActivity.class)
        startActivityForResult(intent,1004)
        }
    
    @Override
     void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == 1004) {
                if (resultCode == Activity.RESULT_OK) {
    //do something with results
               }
            super.onActivityResult(requestCode, resultCode, data)
        }
    

    在第二个活动中:

    void returnResult(String result){
    Intent returnIntent = new Intent()
    returnIntent.putExtra("result", result)
    setResult(Activity.RESULT_OK, returnIntent)
    finish()
    }
    
        4
  •  1
  •   Praveen    6 年前

    在你的主要活动中

    buscarButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
    
       startActivity(new Intent(MainActivity.this, json.class).putExtra("extra1",date.getText().toString()).putExtra("extra2",date2.getText().toString()));
      }
    });
    

    在json活动中

    if (getIntent().hasExtra("extra1")){
        tvJSON.setText(getIntent().getStringExtra("extra1"));
     }
    
     if (getIntent().hasExtra("extra2")){
      textView.setText(getIntent().getStringExtra("extra2"));
     }