ورود

View Full Version : نمایش اطلاعات ارایه دوبعدی در لیست ویو



sara_traveler
یک شنبه 24 فروردین 1393, 11:16 صبح
سلام
یک ارایه دوبعدی دارم که میخوام در لیست نمایش بده اما اطلاعات صحیح نمایش نمیده




item =new String[][] {{"1","2"},{"2","2"}};

list1=(ListView) findViewById(R.id.listView1);
//
list1.setAdapter(new ArrayAdapter<String[]>(this,android.R.layout.simple_list_item_2,item));




و در لیست ویو در تمام خط ها این پیام نشون میده r.java.long

smemamian
یک شنبه 24 فروردین 1393, 22:24 عصر
سلام
شما می تونید:
1- یک تابع بنویسید، و آرایه 2 بعدی رو به یک آرایه معمولی تبدیل کنید(برای اون تبدیل یک منطق در نظر بگیرید).
2- از کلاس BaseAdapter استفاده کنید و از اون کلاس محتوا رو به لیست اضافه کنید.
3- از یک کلاس واسط استفاده کنید. برای مثال :

class MyClass {

private String one;
private String two;

public void setOne(String one){
this.one = one ;
};

public void setTwo(String two){
this.two = two ;
};

public String getOne(){
return this.one ;
};

public String getTwo(){
return this.two ;
};
}

sara_traveler
دوشنبه 25 فروردین 1393, 20:11 عصر
ممنون از راهنماييتون
اما من از اين روش هم رفتم اما باز هم اطلاعات صحيح نمايش نميداد
شما تا حالا اينطوري امتحان كرديد؟ و از اين روش جواب گرفتيد؟
البته بگم من اطلاعات دارم از resultset ميگيرم و در اينجا قرار ميدم

smemamian
دوشنبه 25 فروردین 1393, 23:24 عصر
ممنون از راهنماييتون
اما من از اين روش هم رفتم اما باز هم اطلاعات صحيح نمايش نميداد
شما تا حالا اينطوري امتحان كرديد؟ و از اين روش جواب گرفتيد؟
البته بگم من اطلاعات دارم از resultset ميگيرم و در اينجا قرار ميدم
تمامی 3 روش بالا جواب می دهد !

برای مثال روش اول، اون آرایه رو به تابع مورد نظر ارسال کنید، و اون تابع باید کارش
این باشد که تمامی محتوای آرایه عددی شما رو بخواند و به ازای هر یک، به یک
String تبدیل کند و داخل یک ArrayString قرار دهد سپس اون ArrayString رو برای
شما بفرستد. این ArrayString الان به عنوان پارامتر Adapter شما قرار می گیره .

و همچنین زمانی که کاربر itemی رو در ListView شما انتخاب کرد و دوباره
بخواهید همان مقدار قبلی رو بدست بیارید باید برعکس مراحل بالا رو انجام
دهید. به همین خاطر گفتم از یک منطق خاص استفاده کنید.

sara_traveler
سه شنبه 26 فروردین 1393, 10:30 صبح
ببینید من الان داخل ارایه اینطوری پر کردم

String[][] array = new String[10][10];

ResultSet rs = stmt.executeQuery("select * from tafzil_pish_sabt
");
int i = 0;
while(rs.next())
{



array[i][1]= rs.getString(2).toString();
array[i][2]= rs.getString(3).toString();
array[i][3]= rs.getString(4).toString();
array[i][4]= rs.getString(5).toString();
// array[i][5]= rs.getString(6).toString();
// array[i][6]= rs.getString(7).toString();
i ++;
}
/list1.setAdapter(new ArrayAdapter<String[]>(this,android.R.layout.simple_list_item_1,Arrays.t oString(array )));






اما چیزی که در لیست ویو نمایش میده در تمام خطوط مینویسه
ljava.lang.string@ 41632
من فکر میکنم در جایی تبدیل اطلاعات من مشکل داره
البته وقتی از اطلاعات ارایه print میگیرم اطلاعات صحیح نمایش میده اما در لیست ویو نه

smemamian
سه شنبه 26 فروردین 1393, 23:02 عصر
مشکل شما فقط یک تابع است !
من یک نمونه مثال ساده میزنم :

public class MainActivity extends Activity {
String[][] array ;
ArrayList<String> marray ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
marray = new ArrayList<String>();
array = new String[10][10];

array[0][1]= "one" ;
array[1][2]= "two" ;
array[2][3]= "three" ;
array[3][4]= "four" ;

marray = changeToArrayList(array);
//your adapter : adapter(this,marray);
//test :
Log.e("My list :",
marray.get(0) + " = >" +
marray.get(1) + " = >" +
marray.get(2) + " = >" +
marray.get(3) );
}

private ArrayList<String> changeToArrayList(String [][] arr){
ArrayList<String> arraylist = new ArrayList<String>();
arraylist.add(arr[0][1]);
//or
//arraylist.add(arr[0][1] + " - " + arr[1][2]);
arraylist.add(array[1][2]);
arraylist.add(array[2][3]);
arraylist.add(array[3][4]);
return arraylist ;
}

}

و چیزی که در خروجی خواهید داشت و کاملاً هم صحیح است :

04-15 18:59:53.723: E/My list :(430): one = >two = >three = >four

اگر توجه کرده باشید من به صورت Comment نوشتم :

arraylist.add(arr[0][1] + " - " + arr[1][2]);

این بدین معنی هست که شما با چه منطقی می خواهید عناصر
آرایه اتون در List قرار بگیره !