简体   繁体   English

android-使用EditText值到另一个活动的textview

[英]android - Using EditText values to a textview on another activity

What I need is quite simple. 我需要的很简单。

1- User types some info on EditTexts. 1-用户在EditTexts上键入一些信息。

2- Uses intent and bundle to take the data to another activity 2-使用意图和捆绑将数据带到另一个活动

3- Shows the data stored from EditTexts to TextViews. 3-显示从EditTexts存储到TextViews的数据。

But, here's the problem. 但是,这就是问题所在。 EditTexts are at MainActivity, the activity that will receive the data isn't the next one, but the last one, named finalizar_relatorio.class. EditTexts位于MainActivity,将接收数据的活动不是下一个活动,而是最后一个活动,名为finalizar_relatorio.class。

And also, I'm trying to send this bundle to the next activity when I call one method because if I use startActivity() inside onCreate, it will start that activity right after pressing play. 而且,当我调用一个方法时,我试图将此捆绑发送到下一个活动,因为如果我在onCreate中使用startActivity(),它将在按下play后立即启动该活动。 How should I call the startActivity() from within the method? 我应该如何从方法中调用startActivity()?

There are 4 numeric EditTexts and a char one. 有4个数字EditText和一个char。

Which Bundle.putXX should I use for those? 我应该使用哪个Bundle.putXX?

Like for char: Bundle.putString("VariableBeingCalledInNextActivity", variableThatStoresEditTextdata); 像char一样: Bundle.putString("VariableBeingCalledInNextActivity", variableThatStoresEditTextdata);

Could you help me pointing out what I'm doing wrong? 您能帮我指出我做错了什么吗? Code's kind of messy, sorry for that. 代码有点混乱,对此感到抱歉。

I've tried following other questions here, but I'm guessing my problem is when I'm saving EditText data to the Bundle 我在这里尝试过其他问题,但是我想我的问题是当我将EditText数据保存到Bundle中时

MainActivity (UPDATED) MainActivity(已更新)

package com.example.relatoriodeobras;

import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Toast;

import java.io.File;

public class MainActivity extends AppCompatActivity {
public int tipo;
SharedPreferences dadosprocesso;
public static final String PREFERENCES = "MyPrefs" ;
public static final String processo    = "processo" ;
public static final String requerente  = "requerente" ;
public static final String portas      = "portas" ;
public static final String janelas     = "janelas" ;
public static final String unhab       = "unhab" ;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText editText4 = (EditText)findViewById(R.id.editText4);      
    final EditText editText5 = (EditText)findViewById(R.id.editText5);       
    final EditText editText6 = (EditText)findViewById(R.id.editText6);      
    final EditText editText7 = (EditText)findViewById(R.id.editText7);
    final EditText editText8 = (EditText)findViewById(R.id.editText8);


    Spinner dynamicSpinner = (Spinner) findViewById(R.id.dynamic_spinner);
    String[] items = new String[] { "Tipo de fiscalização","Alvará", "Habite-se" };
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, items);

    dynamicSpinner.setAdapter(adapter);
    dynamicSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                                   int position, long id) {

            String processo1   = editText4.getText().toString();
            String requerente1 = editText5.getText().toString();
            String portas1     = editText6.getText().toString();
            String janelas1    = editText7.getText().toString();
            String unhab1      = editText8.getText().toString();

            dadosprocesso = getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = dadosprocesso.edit();
            editor.putString(processo, processo1);
            editor.putString(requerente, requerente1);
            editor.putString(portas, portas1);
            editor.putString(janelas, janelas1);
            editor.putString(unhab, unhab1);
            editor.commit();

            Log.v("item", (String) parent.getItemAtPosition(position));
            boolean fieldsOK = validate(new EditText[]{editText4,editText5,editText6,editText7,editText8});
            if(fieldsOK) {
                switch (position) {
                    case 1:
                        tipo = 1;
                        Intent intent = new Intent(MainActivity.this, alvara.class);
                        startActivity(intent);
                        break;
                    case 2:
                        tipo = 2;
                        Intent intent1 = new Intent(MainActivity.this, habitese.class);
                        startActivity(intent1);
                        break;
                }
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
            // TODO Auto-generated method stub
        }
    });
    obraFolder();
}

public void obraFolder(){   //Criar a pasta do projeto e o diretório em que os projetos estarão conditos, caso não tenha sido criado.
    EditText projectName = (EditText) findViewById(R.id.editText4);
    String obraName = projectName.getText().toString(); //obraName é a variável String que define o nome da pasta do projeto
    obraName = obraName.trim();
    File myInternalFile;

    String filepath = "Projetos" + obraName;
    String filename = obraName + ".txt";
    ContextWrapper contextWrapper = new ContextWrapper(getApplicationContext());
    File directory = contextWrapper.getDir(filepath, Context.MODE_PRIVATE);
    myInternalFile = new File(directory, filename);
}

private boolean validate(EditText[] fields){
    for(int i=0; i<fields.length; i++){
        EditText currentField=fields[i];
        if(currentField.getText().toString().length()<=0){
            Context context = getApplicationContext();
            CharSequence text = "Atenção! Exitem campos obrigatórios vazios!!";
            int duration = Toast.LENGTH_SHORT;

            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
            //postDelayed
            return false;
        }
    }

    startActivity(dadosdaobra);
    return true;
}

}

finalizar_relatorio.java (UPDATED) finalizar_relatorio.java(更新)

package com.example.relatoriodeobras;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class finalizar_relatorio extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_finalizar_relatorio);

      SharedPreferences dadosprocesso = getSharedPreferences("MyPrefs.xml", MODE_PRIVATE);
    String restoredtext = dadosprocesso.getString("text", null);
    if(restoredtext != null){
        String processo   = dadosprocesso.getString("processo", "processo");
        String requerente = dadosprocesso.getString("requerente", "requerente");
        String portas     = dadosprocesso.getString("portas", "portas");
        String janelas    = dadosprocesso.getString("janelas", "janelas");
        String unhab      = dadosprocesso.getString("unhab", "unhab");

        ((TextView)findViewById(R.id.textView18)).setText(processo);
        ((TextView)findViewById(R.id.textView20)).setText(requerente);
        ((TextView)findViewById(R.id.textView22)).setText(portas);
        ((TextView)findViewById(R.id.textView24)).setText(janelas);
        ((TextView)findViewById(R.id.textView26)).setText(unhab);

    }
}
}

I might be confused by your question, but if your starting the activity in the onCreate, try grabbing the EditText Values in an Overrided onResume() 我可能对您的问题感到困惑,但是如果您在onCreate中启动活动,请尝试在Overrided onResume()获取EditText值。

eg 例如

protected void onResume() {
     String edittext4 = editText4.getText().toString();
     String edittext5 = editText5.getText().toString();
     String edittext6 = editText6.getText().toString();
     String edittext7 = editText7.getText().toString();
     String edittext8 = editText8.getText().toString();

     Intent dadosdaobra = new Intent(MainActivity.this, finalizar_relatorio.class);
Bundle dados = new Bundle();

     dados.putString("extra_processo", edittext5);
     dados.putString("extra_requerente", edittext4);
     dados.putString("extra_portas", edittext6);
     dados.putString("extra_janelas", edittext7);
     dados.putString("extra_unhab", edittext8);

     dadosdaobra.putExtras(dados);

     addSpinnerListeners();
}

private void addSpinnerListeners() {
      dynamicSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                               int position, long id) {
             Log.v("item", (String) parent.getItemAtPosition(position));
             boolean fieldsOK = validate(new EditText[]   {editText4,editText5,editText6,editText7,editText8});
             if(fieldsOK) {
                 switch (position) {
                     case 1:
                        tipo = 1;
                         Intent intent = new Intent(MainActivity.this, alvara.class);
                         startActivity(intent);
                        break;
                     case 2:
                        tipo = 2;
                         Intent intent1 = new Intent(MainActivity.this, habitese.class);
                         startActivity(intent1);
                        break;
            }
        }
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        // TODO Auto-generated method stub
    }
});

为此使用共享首选项,以共享首选项保存数据并从中检索数据。

try This :-
Write this code in your main activity :-
public static final String KEY_PREFERNCE = "prefernce";
public static final String KEY_ID = "id";

SharedPrefernce shraedprefernce = MainActivity.this.getSharedPrefernce(KEY_PREFERNCE ,PRIVATEMODE);
SharedPrefernce.Editor editor = shraedprefernce.edit();
editor.putString(KEY_ID ,youredittext.getText.toString);
editor.commit;

the following code used in your last activity:-
SharedPrefernce shraedprefernce = YourActivity.this.getSharedPrefernce(MainActivity.KEY_PREFERNCE ,PRIVATEMODE);

String data = shraedprefernce.getString(MainActivity.KEY_ID,"");
yourTextView.setData(data);

Don't forget to commit the editor in your main activity.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将EditText和Spinner的值从一个活动传递到另一个活动的TextView中 - Passing values of EditText and Spinner from an Activity into TextView of another Activity Android链接到edittext和textview中的活动 - Android link to activity in edittext and textview 使用setText和onClickListener将数据从EditText传输到另一个活动的TextView吗? - Transfer data from EditText to TextView of another activity using setText and onClickListener? 保存EditText和TextView数据并将其显示在另一个活动中 - Save EditText and TextView data and display it in another activity 如何在Android中的另一个活动中将两个edittext值传递给listview? - How to pass two edittext values to listview in another activity in android? 将值从Android中的listView获取到textView或另一个Listview相同的活动 - Getting values from listView in Android to textView or another Listview same activity 使用EditText更改另一个活动(后台)上的TextView值 - use EditText to change TextView value on another activity (backoffice) 如何在另一个活动的 Textview 中传递用户 EditText 输入 - How to pass users EditText input in a Textview in another activity 在另一个活动中将数据从EditText传递到TextView并通过共享首选项进行使用 - Passing data from EditText to TextView in another activity and savaing it with Shared Preferences 如何在另一个活动中将editText中的字符串用作显示textview? - How to use the string from editText as display textview in another activity?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM