آموزش انتقال داده براساس کلیک بروی آیتم listview
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش انتقال داده براساس کلیک بروی آیتم listview می پردازیم شاید برخی از دوستانی که تازه شروع به برنامه نویسی کرده باشند نتوانند این کار را انجام دهند در این آموزش ما زمانی که بروی هر کدام از آیتم های listview کلیک می کنیم یک مقدار خاص از یک اکتیویتی به اکتیویتی دیگر منتقل خواهد شد در ادامه با ما همراه باشید.
ما در این آموزش دوتا اکتیویتی داریم نام اولین اکتیویتی ما برابر با MainActivity.java است و نام دومین اکتیویتی برابر با TxtMainActivity.java است.
ابتدا وارد layout اولین اکتیویتی شده در اینجا نام آن برابر با activity_main.xml است و کد های زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> |
در بالا یک listView قرار گرفته است.
سپس وارد layout اکتیویتی دوم شده در اینجا نام آن برابر با activity_txt_main.xml است و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".TxtMainActivity" > <TextView android:id="@+id/txtVo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" android:onClick="setV" /> |
در layout دوم یک textView قرار دارد که با کلیک بروی هر آیتم از ListView یک داده به این اکتیویتی پاس داده خواهد شد و در آن قرار قرار می گیرد.
حالا کد مربوط به اکتیویتی اول یا MainActivity.java همانند زیر می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package com.example.listui; import android.app.Activity; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { ListView listview; String [] myStringArray = {"JAVA","Android","php","jQuery","JAVAScript","Paython"}; String [] info = {"for Desktop","for Mobile","for Web","for Web to improve interFace","like jQuery","For desktop"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (ListView) findViewById(R.id.listView1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myStringArray); listview.setAdapter(adapter); listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> MainActivity, View view, int position, long id) { Intent i = new Intent(MainActivity.this,TxtMainActivity.class); i.putExtra("key",info[position]); startActivity(i); } } ); |
در بالا براساس position هر آیتم یک داده خاص به اکتیویتی دوم پاس داده می شود.
حالا کد مربوط به اکتیویتی دوم یا TxtMainActivity.java همانند زیر می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package com.example.listui; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class TxtMainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_txt_main); TextView txtView = (TextView) findViewById(R.id.txtVo); String key = getIntent().getExtra("key"); txtView.setText(key); } } |
سپس در این اکتیویتی داده را دریفات کرده و در TextView قرار می دهیم.
این آموزش هم به پایان رسید.
موفق و پیروز باشید.