1

我得到哪一个具有3个Clickables EditTexts其是3型动物的活动可搜寻列表视图与匹配代码由ButtonClick启动一个新的活动pass值从ListView中要的EditText

但是当我得到例如第一值(1°的EditText )在ListView它出现在EditText(MainActivity)如何预计和当我打电话第二和第三EditText哪一个是其他可点击并获取值,擦除所有其他EditTexts在活动任何想法,为什么这是发生?

我知道我可能需要对待这些动作,并设置并获取这些值,但是我遇到了麻烦,所以我发布了代码和照片,以便让大家帮我,

可能是它的一些简单的解决方案,我不知道或者我不能做到这一点,告诉我怎样才能得到一个解决方案...

这里是什么正在发生中的照片:

enter image description here

这里是我在我的主要活动

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名列表视图这是只不同的值相同的一个;

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) { 
      } 
     }); 
    } 

任何帮助将真正体会!Ø

+5

我想帮助你,但你的措辞使得它真的很难懂什么问题是和你的代码是一团糟。它需要缩进,空白和以小写字母开头的变量。 – 2014-12-05 13:11:24

+0

你有MainAnctivity(包含3个可点击的编辑文本) - >点击后,你打开一个ListActivities选择一个项目 - >当你回到MainActivity时,你没有发现在你的EditText中被忽略的旧值(s )?是你的问题? – Rami 2014-12-05 13:30:37

+0

是啊@Rami这正是我的问题,你知道我错过了什么?就像我在碎片中想的那样,但我对片段并不是很好,所以我找到了这个解决方案,但是我没有很好地处理传递值的意图......我在编程上更新,所以如果你有一个更好的解决方案只是让我知道,或者如果这是简单的解决,将会更好...感谢很多人 – 2014-12-06 02:49:41

回答

1

从列表中选择一个项目后,你打开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(); 
      } 
     }); 
+0

嘿@ Rami很棒的工作,非常感谢,这就是我的定位,我非常感谢你的有用答案......祝你有个愉快的一天:) – 2014-12-07 16:51:00

+0

不客气:) – Rami 2014-12-07 16:58:20

+0

顺便说一句@Rami我将字符串适配器从DbTable,哪一个正在创建Odata服务中的数据,我正在使用odata4j api来处理和存储这些数据,而当我填充我的列表视图时,我再次卡住,将我的listView项目转移到我的编辑文本中,仍在使用您的解决方案。 – 2014-12-08 20:49:15