PDA

View Full Version : قرار دادن مقداری در متغیر با کلیک بر روی آیتم لیست ویو



weblox
یک شنبه 16 فروردین 1394, 01:04 صبح
سلام خدمت دوستان و اساتید محترم

برای اینکه با کلیک بر روی هر آیتم از لیست ویو مقدار string ای را بتوانیم در یک متغیر ذخیره کنیم چه کاری می توان انجام داد؟

weblox
چهارشنبه 19 فروردین 1394, 00:50 صبح
شاید سوالم را بد پرسیدم.

چطور می توان با کلیک بر روی یک آیتم در لیست ویو مقداری را در یک متغیر ذخیره کرد؟

mhsankar
چهارشنبه 19 فروردین 1394, 11:51 صبح
شما کافیست برای لیست ویوتون یک onitemclicklistener بنویسید اونجا میگی با کلیک بر روی هر آیتم چیکار کنی.

weblox
یک شنبه 30 فروردین 1394, 11:52 صبح
شما کافیست برای لیست ویوتون یک onitemclicklistener بنویسید اونجا میگی با کلیک بر روی هر آیتم چیکار کنی.

سلام

این کد من هست.


package ir.tonekanet.therightchoice;

import java.util.List;

import android.os.Bundle;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;


public class SubjectActivity extends ListActivity {




protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_subject);

setListAdapter (new MyAdapter (this,
android.R.layout.simple_list_item_1,R.id.txt1,
getResources ().getStringArray(R.array.subject)));

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
int myVariable_1 = 1;
intent.putExtra("key_name", myVariable_1);
startActivity(intent);


}

private class MyAdapter extends ArrayAdapter<String>{

public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_item, parent, false);
String[] items = getResources ().getStringArray(R.array.subject);

ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
TextView tv = (TextView) row.findViewById(R.id.txt1);

tv.setText(items[position]);

if(items[position].equals("غذاها")){
iv.setImageResource(R.drawable.food);
temp.f="food";
}
else if(items[position].equals("رنگ ها")){
iv.setImageResource(R.drawable.color);
}
else if(items[position].equals("خرید")){
iv.setImageResource(R.drawable.shoping);
}

return row;


}




}


الان می خوام با کلیک بر روی هر کدام از مقدار های (غذاها، رنگ ها و خرید)یک عدد به اکتیویتی دوم ارسال بشه.یکم گیج کننده هست توضیحاتی که پیدا کردم.

tux-world
یک شنبه 30 فروردین 1394, 12:50 عصر
نمونه.



myListView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(G.context,MyText.class);
StructUser item = adapter.getItem(position);

intent.putExtra("MOBILE", item.mobile);
startActivityForResult(intent, 1);
}
});

برای داده هایی که میریزی تو لیست ویو بهتره یه کلاس درست کنی بهش پاس بدی و ازش بگیری این خیلی بهت کمک میکنه

weblox
دوشنبه 31 فروردین 1394, 15:54 عصر
نمونه.



myListView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(G.context,MyText.class);
StructUser item = adapter.getItem(position);

intent.putExtra("MOBILE", item.mobile);
startActivityForResult(intent, 1);
}
});

برای داده هایی که میریزی تو لیست ویو بهتره یه کلاس درست کنی بهش پاس بدی و ازش بگیری این خیلی بهت کمک میکنه

امکانش هست کمی بیشتر توضیح بدید؟

weblox
چهارشنبه 02 اردیبهشت 1394, 17:30 عصر
با استفاده از یه کلاس دیگر و تعریف یک متغیر استاتیک در آن قصد دارم مقداری را از طریق Intent به اکتیویتی درگیری ارسال کنم.

اما در کد زیر نمی تونم اسم لیست ویو را پیدا کنم که رویداد setOnItemClickListener را با آن تعریف کنم.


package ir.tonekanet.therightchoice;

import java.util.List;


import android.os.Bundle;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;


public class SubjectActivity extends ListActivity {




protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_subject);

setListAdapter (new MyAdapter (this,
android.R.layout.simple_list_item_1,R.id.txt1,
getResources ().getStringArray(R.array.subject)));



}

@Override
public void setListAdapter(ListAdapter adapter) {
// TODO Auto-generated method stub
super.setListAdapter(adapter);
}

private class MyAdapter extends ArrayAdapter<String>{

public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_item, parent, false);
String[] items = getResources ().getStringArray(R.array.subject);

ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
TextView tv = (TextView) row.findViewById(R.id.txt1);

tv.setText(items[position]);

if(items[position].equals("غذاها")){
iv.setImageResource(R.drawable.food);
temp.in="food";
Intent next=new Intent(SubjectActivity.this,MainActivity.class);
startActivity(next);
}
else if(items[position].equals("رنگ ها")){
iv.setImageResource(R.drawable.color);
temp.in="color";
Intent next=new Intent(SubjectActivity.this,MainActivity.class);
startActivity(next);
}
else if(items[position].equals("خرید")){
iv.setImageResource(R.drawable.shoping);
temp.in="shoping";
Intent next=new Intent(SubjectActivity.this,MainActivity.class);
startActivity(next);
}



return row;



}




}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.subject, menu);
return true;
}

}

Raminab
چهارشنبه 02 اردیبهشت 1394, 18:04 عصر
list.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent;
switch (position)
{
case 0:
intent = new Intent(listClass.this,anotherClass.class);
intent.putExtra("Value1", value1);
startActivity(intent);
break;
case 1:
intent = new Intent(listClass.this,anotherClass2.class);
intent.putExtra("Value2", value2);
startActivity(intent);
break;
}
}

onitemclicklistener رو مینویسید بعد با استفاده از switchو position آیتم کلیک شده مشخص میکنید برای هر رویداد کلیک هر item چه اتفاقی بیفته
میتونید در activity دوم با دستور String Value1 = getIntent().getStringExtra("Value1"); مقدار Value1 را دریافت کنید

weblox
یک شنبه 06 اردیبهشت 1394, 19:59 عصر
list.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent;
switch (position)
{
case 0:
intent = new Intent(listClass.this,anotherClass.class);
intent.putExtra("Value1", value1);
startActivity(intent);
break;
case 1:
intent = new Intent(listClass.this,anotherClass2.class);
intent.putExtra("Value2", value2);
startActivity(intent);
break;
}
}

onitemclicklistener رو مینویسید بعد با استفاده از switchو position آیتم کلیک شده مشخص میکنید برای هر رویداد کلیک هر item چه اتفاقی بیفته
میتونید در activity دوم با دستور String Value1 = getIntent().getStringExtra("Value1"); مقدار Value1 را دریافت کنید


شما از عبارت list استفاده کردین قبل از setOnitemClickListener که اگر اشتباه نکنم اسم لیست ویو ای هست که تعریف شده قبلش اما چیزی که من از کد خودم متوجه نمیشم (از روی یک آموزش لیست وبو را نوشتم)اینه که لیست ویو به چه اسمی تعریف شده؟آیا داخل کلاس تعریف شده و باید از طریق شی از کلاس بهش دسترسی پیدا کنم؟(چگونه؟)

weblox
سه شنبه 08 اردیبهشت 1394, 09:27 صبح
شما از عبارت list استفاده کردین قبل از setOnitemClickListener که اگر اشتباه نکنم اسم لیست ویو ای هست که تعریف شده قبلش اما چیزی که من از کد خودم متوجه نمیشم (از روی یک آموزش لیست وبو را نوشتم)اینه که لیست ویو به چه اسمی تعریف شده؟آیا داخل کلاس تعریف شده و باید از طریق شی از کلاس بهش دسترسی پیدا کنم؟(چگونه؟)

دوستان نظری ندارید؟

JYasProgramer
سه شنبه 08 اردیبهشت 1394, 09:43 صبح
ListView list = new ListView();

یا

ListView list = (ListView) findViewById(R.id.yourListIn_layoutfile_activity_m ain.xml)