ตัวอย่างการคืนค่า View ณ ตำแหน่งที่กำหนดใน ListView : Android
 

Tutorial :: Android :: ตัวอย่างการใช้งาน :: ตัวอย่างการคืนค่า View ณ ตำแหน่งที่กำหนดใน ListView

ในบทความนี้ จะแสดงให้เห็นถึงตัวอย่างการคืนค่า View ณ ตำแหน่งที่กำหนดใน ListView โดยจะแสดงให้เห็นถึงการเขียนคำสั่งภายใน Class Activity, การเขียนคำสั่งภายในไฟล์ XML Layout, การเขียนคำสั่งภายในไฟล์ XML Strings, และการประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml ดังนี้


การเขียนคำสั่งภายใน Class Activity

  • package nutt.me.activity;
  •  
  • import android.app.Activity;
  • import android.os.Bundle;
  • import android.view.View;
  • import android.widget.ArrayAdapter;
  • import android.widget.Button;
  • import android.widget.ListView;
  • import android.widget.TextView;
  • import android.widget.Toast;
  •  
  • public class MainActivity extends Activity
  • {
  • public void onCreate ( Bundle savedInstanceState )
  • {
  • super.onCreate ( savedInstanceState );
  •  
  • this.setContentView ( R.layout.activity_main );
  •  
  •  
  • String [ ] list = getResources ( ).getStringArray ( R.array.listview_list );
  •  
  • ArrayAdapter < String > dataAdapter = new ArrayAdapter < String > ( this, android.R.layout.simple_list_item_single_choice, list );
  •  
  •  
  • ListView listview = ( ListView ) this.findViewById ( R.id.listview );
  •  
  • listview.setAdapter ( dataAdapter );
  •  
  • listview.setChoiceMode ( ListView.CHOICE_MODE_SINGLE );
  •  
  • listview.setItemChecked ( 0, true );
  •  
  •  
  • Button button = ( Button ) this.findViewById ( R.id.button );
  •  
  • button.setOnClickListener ( new View.OnClickListener ( )
  • {
  • public void onClick ( View v )
  • {
  • ListView listview = ( ListView ) MainActivity.this.findViewById ( R.id.listview );
  •  
  • int checkedPosition = listview.getCheckedItemPosition ( );
  •  
  •  
  • TextView checkedView = ( TextView ) listview.getChildAt ( checkedPosition );
  •  
  • String checkedText = checkedView.getText ( ).toString ( );
  •  
  •  
  • Toast toast = Toast.makeText ( MainActivity.this, "Checked " + checkedText, Toast.LENGTH_LONG );
  •  
  • toast.show ( );
  • }
  • }
  • );
  • }
  • }

จากคำสั่งข้างต้น สามารถอธิบายได้ว่า คำสั่ง ListView listview = ( ListView ) MainActivity.this.findViewById ( R.id.listview ); ในบรรทัดที่ 41 เป็นการสร้าง Object ListView โดยการไปค้นหามาจาก XML Layout และคำสั่ง TextView checkedView = ( TextView ) listview.getChildAt ( checkedPosition ); ในบรรทัดที่ 46 เป็นการคืนค่า View ณ ตำแหน่งที่กำหนดใน ListView แล้วนำค่านั้นมาเก็บไว้ที่ตัวแปรประเภท TextView


การเขียนคำสั่งภายในไฟล์ XML Layout

  • <?xml version="1.0" encoding="utf-8"?>
  • <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent">
  •  
  • <ListView
  • android:id="@+id/listview"
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content" />
  •  
  • <Button
  • android:id="@+id/button"
  • android:layout_below="@id/listview"
  • android:layout_marginTop="10dp"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:layout_centerHorizontal="true"
  • android:text="Show Checked Label" />
  •  
  • </RelativeLayout>

จากคำสั่งข้างต้น สามารถอธิบายได้ว่า element <ListView> มี id คือ listview (ประกาศไว้ในบรรทัดที่ 7) และ element <Button> มี id คือ button (ประกาศไว้ในบรรทัดที่ 12) ซึ่ง id เหล่านี้ถูกใช้อ้างอิงใน Class Activity ข้างต้น


การเขียนคำสั่งภายในไฟล์ XML Strings

  • <?xml version="1.0" encoding="utf-8"?>
  • <resources>
  •  
  • <string name="app_name">ListView</string>
  •  
  • <string-array name="listview_list">
  • <item>Blue</item>
  • <item>Green</item>
  • <item>Brown</item>
  • </string-array>
  •  
  • </resources>

จากคำสั่งข้างต้น สามารถอธิบายได้ว่า ให้ตั้งชื่อไฟล์คือ strings.xml และจัดเก็บไว้ใน Resource Folder ชื่อ "res/values"


การประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml

  • <?xml version="1.0" encoding="utf-8"?>
  • <manifest ... >
  • <application ... >
  • <activity android:name="nutt.me.activity.MainActivity" ... >
  • <intent-filter>
  • <action android:name="android.intent.action.MAIN" />
  • <category android:name="android.intent.category.LAUNCHER" />
  • </intent-filter>
  • </activity>
  • </application>
  • </manifest>

จากคำสั่งข้างต้น สามารถอธิบายได้ว่า มีการประกาศ Activity ชื่อ MainActivity ที่อยู่ใน Package nutt.me.activity ไว้ภายในไฟล์ AndroidManifest.xml ในบรรทัดที่ 4


หน้าจอแสดงผลของ ตัวอย่างการคืนค่า View ณ ตำแหน่งที่กำหนดใน ListView จากการเขียนคำสั่งข้างต้น

หน้าจอแสดงผลของ ตัวอย่างการคืนค่า View ณ ตำแหน่งที่กำหนดใน ListView

จากรูปแสดงหน้าจอของ MainActivity

หน้าจอแสดงผลของ ตัวอย่างการคืนค่า View ณ ตำแหน่งที่กำหนดใน ListView

จากรูปแสดงหน้าจอของ MainActivity เมื่อได้เลือก Item "Blue" ที่ ListView แล้วได้คลิกที่ปุ่ม "Show Checked Label"

หน้าจอแสดงผลของ ตัวอย่างการคืนค่า View ณ ตำแหน่งที่กำหนดใน ListView

จากรูปแสดงหน้าจอของ MainActivity เมื่อได้เลือก Item "Green" ที่ ListView แล้วได้คลิกที่ปุ่ม "Show Checked Label"

Download This Example

0 Comment

  • Have no comment.

Comment Tutorial

 
 
 
 
Share This Topic Login with Facebook