2016-06-19 12 views
0

私はこのリストビューを飲み物(ビビダス)で持っていますが、私はハンブルグの同じアクティビティで新しいリストビューを追加したかったのです。 同じ名前が繰り返されるため、コードが機能しません。このアクティビティを2つのリストビューに分割する方法

public class Cardapios extends AppCompatActivity { 



    DbController db; 
    ListView listview_cardapios, listview_hamburguers; 

    public int id; 


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

     db = new DbController(getBaseContext()); 


     Bundle b = getIntent().getExtras(); 
     if (b != null) { 
      id = b.getInt("id"); 
     } 


     preencheLista(); 
     // preencheLista2(); 
    } 

    private void preencheLista() { 
     ArrayList<CardapioGetter> itens = new ArrayList<CardapioGetter>(); 


     Cursor c = db.getBebidas(id); 


     while (! c.isAfterLast()) { 
      itens.add(new CardapioGetter(c.getString(c.getColumnIndex(DbHelper.NOME_BEBIDAS)),c.getString(c.getColumnIndex(DbHelper.VALOR_BEBIDAS)))); 

      c.moveToNext(); 
     } 


     defineAdapter(itens); 


    } 


    private void defineAdapter(ArrayList<CardapioGetter> itens) { 
     listview_cardapios = (ListView) findViewById(R.id.listview_cardapios); 
     AdapterListCardapios adapter = new AdapterListCardapios(getApplicationContext(), itens); 
     listview_cardapios.setAdapter(adapter); 

     listview_cardapios.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       CardapioGetter itemValue = (CardapioGetter) listview_cardapios.getItemAtPosition(position); 


      } 
     }); 
    } 

    private void preencheLista2() { 
     ArrayList<CardapioGetter> itens = new ArrayList<CardapioGetter>(); 

     Cursor h = db.getHamburguers(id); 
     while (! h.isAfterLast()) { 
      itens.add(new CardapioGetter(h.getString(h.getColumnIndex(DbHelper.NOME_HAMBURGUERS)),h.getString(h.getColumnIndex(DbHelper.VALOR_HAMBURGUERS)))); 

      h.moveToNext(); 
     } 


     defineAdapter2(itens); 
    } 


    private void defineAdapter2(ArrayList<CardapioGetter> itens) { 
     listview_hamburguers = (ListView) findViewById(R.id.listview_hamburguers); 
     AdapterListCardapios adapter = new AdapterListCardapios(getApplicationContext(), itens); 
     listview_hamburguers.setAdapter(adapter); 

     listview_hamburguers.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       CardapioGetter itemValue = (CardapioGetter) listview_hamburguers.getItemAtPosition(position); 


      } 
     }); 
     } 

レイアウトには、データベースからのデータで置き換えられる4つのテキストビューがあります。 2をbottonから新しいリストビューに分割したいと思います。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Medium Text" 
     android:id="@+id/textview_valorbebida" 
     android:textColor="@color/abc_input_method_navigation_guard" 
     android:layout_marginTop="133dp" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentEnd="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Medium Text" 
     android:id="@+id/textview_nomebebida" 
     android:textColor="@color/abc_input_method_navigation_guard" 
     android:layout_alignTop="@+id/textview_valorbebida" 
     android:layout_alignParentStart="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Bebidas" 
     android:id="@+id/textView2" 
     android:layout_above="@+id/textview_nomebebida" 
     android:layout_alignParentStart="true" 
     android:textColor="@color/abc_input_method_navigation_guard" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Pratos" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" 
     android:id="@+id/textView4" 
     android:textColor="@color/abc_input_method_navigation_guard" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Medium Text" 
     android:id="@+id/textview_nomehamburguer" 
     android:layout_below="@+id/textView4" 
     android:layout_alignParentStart="true" 
     android:textColor="@color/abc_input_method_navigation_guard" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Medium Text" 
     android:id="@+id/textview_valorhamburguer" 
     android:layout_alignTop="@+id/textview_nomehamburguer" 
     android:layout_alignParentEnd="true" 
     android:textColor="@color/abc_input_method_navigation_guard" /> 



</RelativeLayout> 

私が使用しているアダプタリストクラス。 itensをtextviewsに設定します。 私はリストビュー上で分離したいテキストビュー。

public class AdapterListCardapios extends BaseAdapter{ 


    private LayoutInflater mInflater; 
    private ArrayList<CardapioGetter> itens; 


    public AdapterListCardapios(Context context, ArrayList<CardapioGetter> itens) { 
     //Itens que preencheram o listview 
     this.itens = itens; 
     //responsavel por pegar o Layout do item. 
     mInflater = LayoutInflater.from(context); 
    } 


    public int getCount() { 
     return itens.size(); 
    } 

    /** 
    * Retorna o item de acordo com a posicao dele na tela. 
    */ 

    public CardapioGetter getItem(int position) { 
     return itens.get(position); 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View view, ViewGroup parent) { 
     //Pega o item de acordo com a posição. 
     CardapioGetter item = itens.get(position); 
     //infla o layout para podermos preencher os dados 

     view = mInflater.inflate(R.layout.textview_cardapios, null); 

     ((TextView) view.findViewById(R.id.textview_nomehamburguer)).setText(item.getNome_hamburguers()); 
     ((TextView) view.findViewById(R.id.textview_valorhamburguer)).setText("R$ "+ item.getValor_hamburguers()); 

     ((TextView) view.findViewById(R.id.textview_nomebebida)).setText(item.getNome_bebidas()); 
     ((TextView) view.findViewById(R.id.textview_valorbebida)).setText("R$ "+ item.getValor_bebidas()); 

     return view; 
    } 




What I want is. 1 listview with drinks and 1 listview with food on the same activity. thanks 

答えて

0
CriarInterface p = new CriarInterface(); 
    new Thread(p).start(); 

} 


public class CriarInterface implements Runnable { 

    @Override 
    public void run() { 
     preencheLista(); 
     preencheLista2(); 
    } 
} 

で働いていました。

関連する問題