View Full Version : گرید ویو
sara_traveler
چهارشنبه 03 اردیبهشت 1393, 10:11 صبح
سلام
من یک گرید ویو دارم که اطلاعات داخلش با arraylist پر می کنم
List<String> w= new ArrayList<String>();
و بعد هم
g.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
et1.setText(w[arg2]);
}
اما[w[arg2 نمیشناسه و خطا میده
حالا میخوام بدونم چطوری میتونم روی سطی که در گرید کلیلک کردم اطلاعاتش بدست بیارم
ممنون
poorman
چهارشنبه 03 اردیبهشت 1393, 12:09 عصر
شما دارید از array list استفاده میکنید، نمیشه مثل آرایه مقدار رو ازش بگیرید
باید به این صورت عمل کنید
et1.setText(w.get(arg2));
sara_traveler
چهارشنبه 03 اردیبهشت 1393, 13:04 عصر
ممنون کمک خیلی بزرگی کردید
بعد چطورمیتونم فقط مقدار یک ستون خاص برگردونم ؟چون الان رو هر ایتم کلیلک کنم اون برمیگرده اما منم مثلا فقط recordnumber لازم دارم که بتونم ازش استفاده کنم
و ایا میشه ستونی در گرید visible کرد که دیده نشه؟
poorman
چهارشنبه 03 اردیبهشت 1393, 14:21 عصر
والا کامل منظور سوالتون رو متوجه نشدم !!!
گرید ویو آیتم آیتم هست دیگه، شما دارید برای کلیک کردن روی هر آیتم کد مینویسید، اگر میخواین یک ستون یا ردیف رو بگیرید باید خودتون با محاسبات این کار رو انجام بدید
مثلا ببینید هر ردیف چند آیتم داره و وقتی روی یک آیتم کلیک شد شما از لیستی که دارید تمام اون آیتم های سطر یا ستون رو بگیرید
سوال دوم رو دقیق نمیدونم، اما اگر یک گرید ویو شخصی سازی شده داشته باشید که مثلا شامل عکس و تکست باشه میشه این عکس و تکست رو unvisible کرد که دیده نشن، اما جای آیتم به هرحال دیده میشه
sara_traveler
چهارشنبه 03 اردیبهشت 1393, 14:32 عصر
چطور میشه به سطر و ستون دسترسی داشت؟
یعنی چه کدی باید نوشت
یک سوال دیگم داشتم من در برنامم نیاز دارم به اسکیول سرور وصل بشم و اطلاعات در اونجا ذخیره کنم
برای اینکار
class tabe_sql extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
query2();
return null;
}
}
یک کلاس نوشتم و تابه اونجا فراخونی کردم
و مثل قبل arraylist پر کردم و حالا میخوام در گرید نمایش بدم
اما این خط
g.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,w
در هر جا مینویسم خطا میده
poorman
چهارشنبه 03 اردیبهشت 1393, 15:21 عصر
برای اون سطر و ستون که گفتم ، اینطور که من میدونم راه مستقیم وجود نداره، خودتون باید با استفاده از position آیتمی که کلیک شده و یکسری محاسبات سطر و ستون رو بدست بیارید
سوال دومتون رو هم اگه میتونید کد پر کردن array list و خطایی که میده رو بذارید تا بتونم دقیق راهنمایی کنم
sara_traveler
پنج شنبه 04 اردیبهشت 1393, 09:46 صبح
ممنون از اینکه راهنمایی می کنید
tabe_sql d = new tabe_sql();
d.execute();
اول این نوشتم
class tabe_sql extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
query2();
return null;
}
}
این هم تابع فراخونی شده
public void query2() {
//Log.i("Android"," MySQL Connect Example.");
Connection conn = null;
try {
String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newI nstance();
String connString = "jdbc:jtds:sqlserver://94.183.240.100/test1;user=sina89;password=11166;instance=SQLExpre ss;";
String username = "sina89";
String password = "11166";
conn = DriverManager.getConnection(connString,username,pa ssword);
Log.w("Connection","open");
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITI VE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery("select * from tafzil_pish_sabt ");
//***********
int i = 0;
while(rs.next())
{
w.add(rs.getString(1)) ;
i ++;
}
conn.close();
} catch (Exception e)
{
Log.w("Error connection","" + e.toString());
}
}
که اگر گرید ویو در همین تابع بذارم هیچ جوابی نمیده
اگر در همون ابتدا بعد فراخونی کلاس بذارم
خطا میده
و کلا حتی من در تابع QUERY2 میخوام پیغام TOAST نشون بدم پیغام خطا THEARD میده
ممنون میشم راهنماییم کنید
poorman
پنج شنبه 04 اردیبهشت 1393, 17:07 عصر
والا من چون با SQL Server کار نکردم نمیتونم نظری بدم روی اون قسمت ارتباط با دیتابیس
پیشنهادم اینه که شما خوندن اطلاعات از دیتابیس رو اول توی ترد اصلی برنامه انجام بدین، بعدش چک کنید ببینید آیا لیست درست پر میشه یا نه
و اگر اون متغیر rs که اطلاعات رو میریزید داخلش از نوع cursor هست باید قبل از پر کردن لیست moveToFirst بشه
اگر لیست درست پر بشه، نباید مشکلی توی گرید ویو پیش بیاد
برای اون toast هم فک میکنم اگر به جای this بذارید getApplicationContext() درست بشه ، یا یک متغیر عمومی از نوع Context بسازید و توی کلاس مقدار رو برابر this بذارید بعد اون رو توی Toast به جای this بذارید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.