我得到一个活动,其中一个有3个Clickables EditTexts是3个不同的搜索ListViews与MatchCode by ButtonClick开始一个新的活动
但是当我得到ListView上的第一个值(1°EditText)时,它出现在EditText(MainActivity)中是如何预期的,当我调用第二个和第三个EditText时哪个是其他可点击的并获取值,擦除所有其他的EditTexts在活动中任何想法为什么会发生这种情况?
我知道我可能需要以设置和获取值来对待这些操作,但我遇到了麻烦所以我发布了代码和照片让你们帮助我,
可能是我不知道的一些简单的解决方案,或者我无法做到这一点,请告诉我如何才能获得解决方案......
这是一张正在发生的照片:
这是我主要活动中的代码
public class Formulario_ItemNota extends Formulario_Nota {
private ListView listaProblemas;
private ItemNota_Helper itemnota_helper;
private List<ItemNota> itemnotas;
private ItemNota itemnotaSelecionado;
private Intent int_conjunto;
private Intent int_problema;
private EditText ETconjunto;
private EditText ETproblema;
protected void onCreate(Bundle savedInstanceState) {
System.out.println("Daniel: onCreate" + new Date());
super.onCreate(savedInstanceState);
setContentView(R.layout.form_itemnota);
this.itemnota_helper = new ItemNota_Helper(this);
ETconjunto = (EditText) findViewById(R.id.ET_conjunto);
ETconjunto.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent material = new Intent(Formulario_ItemNota.this, ListaMateriais.class);
startActivity(material);
}
});
ETproblema = (EditText) findViewById(R.id.ET_problemas);
ETproblema.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent problema = new Intent(Formulario_ItemNota.this, ListaProblemas.class);
startActivity(problema);
}
});
final EditText ETprocedencia = (EditText) findViewById(R.id.ET_procedencia);
ETprocedencia.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent procedencia = new Intent(Formulario_ItemNota.this, ListaProcedencia.class);
startActivity(procedencia);
}
});
Intent int_conjunto = getIntent();
String tEXT_conjunto = int_conjunto.getStringExtra("TextMateriais");
EditText et_conj = (EditText) findViewById(R.id.ET_conjunto);
System.out.println("conjunto: " + et_conj);
ETconjunto.setText(tEXT_conjunto, TextView.BufferType.EDITABLE);
Intent int_problema = getIntent();
String tEXT_problema = int_problema.getStringExtra("TextProblemas");
EditText et_problema = (EditText) findViewById(R.id.ET_problemas);
System.out.println("problema: " + et_problema);
ETproblema.setText(tEXT_problema, TextView.BufferType.EDITABLE);
Intent int_procedencia = getIntent();
String tEXT_procedencia = int_procedencia.getStringExtra("TextProcedencia");
EditText et_procedencia = (EditText) findViewById(R.id.ET_procedencia);
et_procedencia.setText(tEXT_procedencia, TextView.BufferType.EDITABLE);
Stara_DB ItemNotaDao = new Stara_DB(Formulario_ItemNota.this);
itemnotas = ItemNotaDao.getListaIN();
ItemNotaDao.close();
ArrayAdapter<ItemNota> adapter = new ArrayAdapter<ItemNota>(this, android.R.layout.simple_list_item_1, itemnotas);
listaProblemas = (ListView) findViewById(R.id.lista_descr_problemas);
listaProblemas.setAdapter(adapter);
registerForContextMenu(listaProblemas);
}
private void carregaListaItemNota() {
Stara_DB ItemNotaDao = new Stara_DB(Formulario_ItemNota.this);
List<ItemNota> itensnotas = ItemNotaDao.getListaIN();
ItemNotaDao.close();
ArrayAdapter<ItemNota> adapter = new ArrayAdapter<ItemNota>(this, android.R.layout.simple_list_item_1, itensnotas);
this.listaProblemas.setAdapter(adapter);
}
public void onCreateContextMenu(ContextMenu menuItem, View vItem, ContextMenuInfo menuInfoItem) {
super.onCreateContextMenu(menuItem, vItem, menuInfoItem);
listaProblemas = (ListView) findViewById(R.id.lista_descr_problemas);
MenuItem editar = menuItem.add("Editar");
editar.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
return true;
}
});
MenuItem deletar = menuItem.add("Deletar");
deletar.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item1) {
new AlertDialog.Builder(Formulario_ItemNota.this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Deletar").setMessage("Deseja mesmo deletar ?")
.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Stara_DB ItemNotaDao = new Stara_DB(Formulario_ItemNota.this);
ItemNotaDao.deletar(itemnotaSelecionado);
ItemNotaDao.close();
carregaListaItemNota();
}
}).setNegativeButton("Não", null).show();
return true;
}
});
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.itemnotamenu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.addItem:
ItemNota itemnota = itemnota_helper.pegaItemNotaDoFormulario();
Stara_DB ItemNotaDao = new Stara_DB(Formulario_ItemNota.this);
itemnotas = ItemNotaDao.getListaIN();
ItemNotaDao.insereItemNota(itemnota);
Toast.makeText(Formulario_ItemNota.this, "Dados Salvos com sucesso", Toast.LENGTH_LONG).show();
carregaListaItemNota();
ItemNotaDao.close();
return true;
case R.id.CriarOrdem:
Intent intentl = new Intent(Formulario_ItemNota.this, Formulario_OS.class);
startActivity(intentl);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
这是我的3个ListView之一,只有不同的值相同;
public class ListaMateriais extends Activity {
private ListView listamateriais;
ArrayAdapter<String> adapMatchMaterial;
EditText inputSearch;
public EditText ETclient;
ArrayList<HashMap<String, String>> productList;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_material_match);
String products[] = { "Parafuso 3x4 092387",
"Cabeçote redpo 09873",
"alavanca de ignição 027625",
"Pistão de arranque 093298092",
"Eixo dianteiro 0343232",
"Cabeçote parafuseta 093232" };
listamateriais = (ListView) findViewById(R.id.list_match_material);
adapMatchMaterial = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, products);
listamateriais.setAdapter(adapMatchMaterial);
listamateriais.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) {
String text= (String) arg0.getItemAtPosition(position);
Bundle bundle = new Bundle();
bundle.putString("TextMateriais", text);
Intent int_material = new Intent(ListaMateriais.this,Formulario_ItemNota.class);
int_material.putExtras(bundle);
startActivity(int_material);
finish();
}
});
inputSearch = (EditText) findViewById(R.id.materialSearch);
inputSearch.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
ListaMateriais.this.adapMatchMaterial.getFilter().filter(cs);
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
public void afterTextChanged(Editable arg0) {
}
});
}
任何帮助都会真正体会!!! O
答案 0 :(得分:2)
从列表中选择一个项目后,您将打开另一个Formulario_ItemNota实例。这就是你丢失editText数据的原因。
试试这个:
public class Formulario_ItemNota extends Formulario_Nota {
private ListView listaProblemas;
private ItemNota_Helper itemnota_helper;
private List<ItemNota> itemnotas;
private ItemNota itemnotaSelecionado;
private Intent int_conjunto;
private Intent int_problema;
private EditText ETconjunto;
private EditText ETproblema;
private EditText ETprocedencia;
protected void onCreate(Bundle savedInstanceState) {
System.out.println("Daniel: onCreate" + new Date());
super.onCreate(savedInstanceState);
setContentView(R.layout.form_itemnota);
this.itemnota_helper = new ItemNota_Helper(this);
ETconjunto = (EditText) findViewById(R.id.ET_conjunto);
ETconjunto.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent material = new Intent(Formulario_ItemNota.this, ListaMateriais.class);
startActivityForResult(material, 1);
}
});
ETproblema = (EditText) findViewById(R.id.ET_problemas);
ETproblema.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent problema = new Intent(Formulario_ItemNota.this, ListaProblemas.class);
startActivityForResult(problema , 2);
}
});
ETprocedencia = (EditText) findViewById(R.id.ET_procedencia);
ETprocedencia.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent procedencia = new Intent(Formulario_ItemNota.this, ListaProcedencia.class);
startActivityForResult(procedencia , 3);
}
});
Stara_DB ItemNotaDao = new Stara_DB(Formulario_ItemNota.this);
itemnotas = ItemNotaDao.getListaIN();
ItemNotaDao.close();
ArrayAdapter<ItemNota> adapter = new ArrayAdapter<ItemNota>(this, android.R.layout.simple_list_item_1, itemnotas);
listaProblemas = (ListView) findViewById(R.id.lista_descr_problemas);
listaProblemas.setAdapter(adapter);
registerForContextMenu(listaProblemas);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {// back from ListaMateriais.class
if(resultCode == RESULT_OK){
String resultFromMateriais=data.getStringExtra("TextMateriais");
ETconjunto.setText(resultFromMateriais);
}
} else if (requestCode == 2) { // back from ListaProblemas.class
if(resultCode == RESULT_OK){
String resultFromProblemas=data.getStringExtra("TextProblemas");
ETproblema.setText(resultFromProblemas);
}
} else if (requestCode == 3) { // back from ListaProcedencia.class
if(resultCode == RESULT_OK){
String resultFromProcedencia=data.getStringExtra("TextProcedencia");
ETprocedencia.setText(resultFromProcedencia);
}
}
}
private void carregaListaItemNota() {
Stara_DB ItemNotaDao = new Stara_DB(Formulario_ItemNota.this);
List<ItemNota> itensnotas = ItemNotaDao.getListaIN();
ItemNotaDao.close();
ArrayAdapter<ItemNota> adapter = new ArrayAdapter<ItemNota>(this, android.R.layout.simple_list_item_1, itensnotas);
this.listaProblemas.setAdapter(adapter);
}
public void onCreateContextMenu(ContextMenu menuItem, View vItem, ContextMenuInfo menuInfoItem) {
super.onCreateContextMenu(menuItem, vItem, menuInfoItem);
listaProblemas = (ListView) findViewById(R.id.lista_descr_problemas);
MenuItem editar = menuItem.add("Editar");
editar.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
return true;
}
});
MenuItem deletar = menuItem.add("Deletar");
deletar.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item1) {
new AlertDialog.Builder(Formulario_ItemNota.this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Deletar").setMessage("Deseja mesmo deletar ?")
.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Stara_DB ItemNotaDao = new Stara_DB(Formulario_ItemNota.this);
ItemNotaDao.deletar(itemnotaSelecionado);
ItemNotaDao.close();
carregaListaItemNota();
}
}).setNegativeButton("Não", null).show();
return true;
}
});
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.itemnotamenu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.addItem:
ItemNota itemnota = itemnota_helper.pegaItemNotaDoFormulario();
Stara_DB ItemNotaDao = new Stara_DB(Formulario_ItemNota.this);
itemnotas = ItemNotaDao.getListaIN();
ItemNotaDao.insereItemNota(itemnota);
Toast.makeText(Formulario_ItemNota.this, "Dados Salvos com sucesso", Toast.LENGTH_LONG).show();
carregaListaItemNota();
ItemNotaDao.close();
return true;
case R.id.CriarOrdem:
Intent intentl = new Intent(Formulario_ItemNota.this, Formulario_OS.class);
startActivity(intentl);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
在你的3个ListActivities中,你必须改变它们:
listamateriais.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) {
String text= (String) arg0.getItemAtPosition(position);
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK, returnIntent);
finish();
}
});