настраиваемый просмотр списка с динамическим просмотром текста и радиокнопками в Android

1

Привет всем Я создаю пользовательский listview с textview и radioobuttons, которые должны быть определены программно, так как я должен взять его из массива и в зависимости от массива я должен его создать. Так что я могу создать собственное listview с textview, но я не знаю, как создать радиогруппу с радиокнопками и добавить для просмотра любой помощи от вас, ребята будут очень признательны, это мой код ниже

    public abstract class LearnActivity extends ListActivity implements RadioGroup.OnCheckedChangeListener  {
    String tag = "Events";
    private ProgressDialog m_ProgressDialog = null; 
    private ArrayList<mac> m_orders = null;
    private OrderAdapter m_adapter;
    private Runnable viewOrders;
    String[] values = new String[] { "Android", "iPhone", "Windows",
            "Black", "WebOS", "Ubuntu", "Windows7", "MaxOSX",
            "Linux", "OS/2" };
    int index = values.length;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.d(tag," event7");
        m_orders = new ArrayList<mac>();
        Log.d(tag," event65");
        this.m_adapter = new OrderAdapter(this, R.layout.row, m_orders);
        Log.d(tag," 34");
        setListAdapter(this.m_adapter);
        Log.d(tag," 45");
        viewOrders = new Runnable(){
            @Override
            public void run() {
                Log.d(tag," eve");
                getOrders();
            }
        };
        Thread thread =  new Thread(null, viewOrders, "MagentoBackground");
        Log.d(tag," ent7");
        thread.start();
        m_ProgressDialog = ProgressDialog.show(LearnActivity.this,    
              "Please wait...", "Retrieving data ...", true);
    }
    private Runnable returnRes = new Runnable() {

        @Override
        public void run() {
            Log.d(tag," dre");
            if(m_orders != null && m_orders.size() > 0){
                m_adapter.notifyDataSetChanged();
                for(int i=0;i<m_orders.size();i++)
                m_adapter.add(m_orders.get(i));
                Log.d(tag," ooo");
            }
            m_ProgressDialog.dismiss();
            m_adapter.notifyDataSetChanged();
            Log.d(tag," 4567");
        }
    };
    private void getOrders(){
          try{
              Log.d(tag," yyy");
              m_orders = new ArrayList<mac>();
              Boolean damn=false;


              String sam="hi";
              for(int positio=0;positio<index;positio++){
                  mac o3 = new mac();
                  String sam1=values[positio];
                  Log.d(tag,"derk");
                  o3.setOrderName(sam1);

                  m_orders.add(o3);
              }


              Thread.sleep(5000);
              Log.i("ARRAY", ""+ m_orders.size());
            } catch (Exception e) { 
              Log.e("BACKGROUND_PROC", e.getMessage());
            }
            runOnUiThread(returnRes);
            Log.d(tag,"cfds");
        }
    private class OrderAdapter extends ArrayAdapter<mac> {

        private ArrayList<mac> items;
        Boolean testit;

        public OrderAdapter(Context context, int textViewResourceId, ArrayList<mac> items) {
                super(context, textViewResourceId, items);
                this.items = items;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Log.d(tag," yyt");
                View v = convertView;
                if (v == null) {
                    Log.d(tag," ll");
                    LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    v = vi.inflate(R.layout.row, null);
                }
                mac o = items.get(position);
                if (o != null) {
                    Log.d(tag," uuu");

                        TextView re=((TextView)v.findViewById(R.id.textView1));
                 mRadioGroup = (RadioGroup) findViewById(R.id.radioGroup1);
                    RadioButton newRadioButton = new RadioButton(this);
                    newRadioButton.setText(R.string.radio_group_snack);
                    newRadioButton.setId(R.id.snack);
                    LinearLayout.LayoutParams layoutParams = new RadioGroup.LayoutParams(
                            RadioGroup.LayoutParams.WRAP_CONTENT,
                            RadioGroup.LayoutParams.WRAP_CONTENT);
                    mRadioGroup.addView(newRadioButton, 0, layoutParams);
                    mRadioGroup.setOnCheckedChangeListener(this);

                    re.setText(o.getOrderName());
                  CharSequence fat=re.getText();
                  String gf=(String)re.getText();
                  Log.d(gf," 000000");



                   //String mac=Boolean.toString(testit);
                   //Log.d(mac," 678990");
                    //System.out.println(mac," ffff");



                          //tt.setText("Name: "+o.getOrderName());



                         // bt.setText("Status: "+ o.getOrderStatus());

            }

            public void onCheckedChanged(RadioGroup group,int checkedId){

            }

                return v;

        }


    }
}
  • 0
    в приведенном выше коде эта строка RadioButton newRadioButton = new RadioButton (this); выдача ошибки, так как конструктор RadioButton (LearnActivity.OrderAdapter) не определен, и эта строка newRadioButton.setId (R.id.snack); давать ошибку, так как закуска не может быть разрешена или не является полем. что это означает для создания постоянной закуски
  • 0
    кто-нибудь может объяснить мне об указанных ошибках, пожалуйста
Теги:
android-layout

1 ответ

0
Лучший ответ

См. Примеры, приведенные в выдержке

или в качестве альтернативного решения попробуйте это.

  • 0
    спасибо за ссылку AB1209 (это) но прокрутка не работает
  • 0
    Я решил это, представив ScrollView, а затем tableLayout как его потомок.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню