2010-02-07 21 views
5

के लिए मान प्राप्त करें/सेट करें मेरे पास XML में मूल दृश्य है।गतिशील दृश्य बनाना, एकाधिक बार X बार देखें, प्रत्येक समूह

http://img513.imageshack.us/img513/7171/contextnotionlevelprefs.jpg http://img513.imageshack.us/img513/7171/contextnotionlevelprefs.jpg

<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content"><TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="Family" android:id="@+id/Family" android:textSize="16px" android:padding="5px" android:textStyle="bold" android:gravity="center_horizontal"></TextView> 
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/Family" android:layout_alignRight="@+id/Family" android:text="@string/context_notion_level_off" android:id="@+id/ContextNotionLevel"></TextView> 
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/Detailed" android:layout_below="@+id/Family" android:layout_alignLeft="@+id/Family" android:textStyle="bold" android:id="@+id/Module" android:text="Location"></TextView> 
<SeekBar android:layout_height="wrap_content" android:id="@+id/SeekBar01" android:layout_width="fill_parent" android:padding="5px" android:saveEnabled="true" android:layout_below="@+id/Module" android:max="2"></SeekBar> 

</RelativeLayout> 

मैं अनुभाग X बार के तहत कैसे दोहरा सकते हैं, यहाँ की तरह लग रहे करने के लिए:
http://img687.imageshack.us/img687/4674/contextnotionleveldraft.png http://img687.imageshack.us/img687/4674/contextnotionleveldraft.png

फिर, कैसे मैं सभी मदों के लिए seekbar उपयोग कर सकते हैं?
कृपया ध्यान दें कि मैं इसे काम करने के लिए गतिशील होना चाहता हूं उदाहरण के लिए: 15 बार।

नाम (स्थान), सेट मान (तलाशबार मान), और प्रत्येक समूह के लिए मूल्य पुनर्प्राप्त करने में सक्षम कैसे होगा।

उत्तर

10

चित्र आप से, आप "परिवार" शीर्षक दोहराना चाहते हैं न

आप क्या कर सकते एक नया एक्सएमएल (mymain.xml) एक लेआउट और शीर्षक युक्त बनाने है

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:orientation="vertical" android:id="@+id/myMainLayout" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content"> 
<TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="Family" android:id="@+id/Family" android:textSize="16px" android:padding="5px" android:textStyle="bold" android:gravity="center_horizontal"></TextView> 
</LinearLayout> 

फिर एक और एक्सएमएल (myviews.xml), (शीर्षक निकाले के साथ) एक्सएमएल आप अपने ओ पी से डाल दिया है डाल

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout android:id="@+id/RelativeLayout01" 
    android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content"> 

    <TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:textStyle="bold" 
     android:id="@+id/Module" android:text="Location"> 
    </TextView> 

    <TextView android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:text="context_notion_level_off" 
     android:layout_alignRight="@+id/Module" android:id="@+id/ContextNotionLevel"> 
    </TextView> 


    <SeekBar android:layout_height="wrap_content" android:id="@+id/SeekBar01" 
     android:layout_width="fill_parent" android:padding="5px" 
     android:saveEnabled="true" android:layout_below="@+id/Module" 
     android:max="2"> 
    </SeekBar> 

</RelativeLayout> 

और गतिविधि में:

super.onCreate(savedInstanceState); 

setContentView(R.layout.mymain); 
LinearLayout l = (LinearLayout) findViewById(R.id.myMainLayout); 
LayoutInflater linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

for(int i = 0 ; i < 15; i++) { 
    View myView = linflater.inflate(R.layout.myviews, null); 
    SeekBar s = (SeekBar) myView.findViewById(R.id.SeekBar01); 
    //Set an id to know which seekbar is in use 
    s.setId(i); 
    TextView t = (TextView) myView.findViewById(R.id.Module); 

    //Change name dynamically 
    t.setText(("My location " + i).toString()); 
    s.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){ 

    @Override 
    public void onProgressChanged(SeekBar seekBar, int progress, 
      boolean fromUser) { 
     Log.i("=========","My SeekBar = " + seekBar.getId()); 
     Log.i("=========","My Progress = " + progress); 

    } 

    @Override 
    public void onStartTrackingTouch(SeekBar seekBar) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onStopTrackingTouch(SeekBar seekBar) { 
     // TODO Auto-generated method stub 

    }}); 
    l.addView(myView); 
} 

संपादित करें:

अपने mymain.xml से LinearLayout चारों ओर स्क्रॉल बार जोड़ने के लिए, scrollview टैग जोड़ने

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:orientation="vertical" android:scrollbars="vertical"> 
<LinearLayout android:orientation="vertical" android:id="@+id/myMainLayout" android:layout_width="fill_parent" android:layout_height="wrap_content"> 
<TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="Family" android:id="@+id/Family" android:textSize="16px" android:padding="5px" android:textStyle="bold" android:gravity="center_horizontal"></TextView> 
</LinearLayout> 

</ScrollView> 
+0

जहां/कैसे मैं एक scrollview जोड़ सकते हैं जब वहाँ पर दिखाने के लिए भी कई हैं स्क्रीन? – Pentium10

+0

आपने mymain.xml – ccheneson

+0

से लाइनरलायआउट के चारों ओर स्क्रॉलव्यू डाला है, मुझे लगता है कि xmlns: scrollroid के लिए एंड्रॉइड (धन्यवाद) – Pentium10

संबंधित मुद्दे