PDA

View Full Version : مشکل این کد چیه؟



zarabela
چهارشنبه 11 تیر 1393, 03:04 صبح
سلام دوستان ... من تو برنامم یه Gridview دارم که میخوام با کلیک روی هر آیتمی یه صفحه جدید باز شه ولی موقع اجرا ارور میده

کسی میدونه مشکلش چیه؟
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class Main extends Activity {

private Context contex;


private int[] mThumbIds={R.drawable.tie,R.drawable.shall_icon1,
R.drawable.kafsh_icon1};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);



setContentView(R.layout.main);

GridView gridview=(GridView)findViewById(R.id.gridView1);
gridview.setAdapter(new ImageAdapter(this));


gridview.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View v, int positon,
long id) {
// TODO Auto-generated method stub
switch (positon) {
case 0:startActivity(new Intent(Main.this, kravat.class));break;
case 1:break;
case 2:break;

}
}
});
}





public class ImageAdapter extends BaseAdapter{

private Context mContext;
public ImageAdapter(Context c){
mContext=c;}



@Override
public int getCount() {
// TODO Auto-generated method stub
return mThumbIds.length;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageview;
if(convertView==null){
imageview=new ImageView(mContext);
imageview.setLayoutParams(new GridView.LayoutParams(250,250));
imageview.setScaleType(ImageView.ScaleType.CENTER_ CROP);
imageview.setPadding(8, 200, 8, 200);
}
else {
imageview=(ImageView)convertView;
}


imageview.setImageResource(mThumbIds[position]);
return imageview;
}}






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

}

moralschool
چهارشنبه 11 تیر 1393, 11:27 صبح
قبل از on creat اینا رو قرار بده :


GridView mygrid;
Intent[] activities;
Integer[] pics;
String[] Texts;

در on creat اینا رو قرار بده :


activities = new Intent[] {

new Intent(Main.this, activity2.class),
new Intent(Main.this, activity3.class)
};

pics = new Integer[]{
R.drawable.pic1,R.drawable.pic2
};

mygrid = (GridView) findViewById(R.id.gridView1);
mygrid.setAdapter(new GridAdapter());

بجای activity2 و 3 نام اکتیویتی هایی رو بنویس که میخوای با کلیک روی آیتم های گرید وارد اون صفخات بشه ( که البته میتونی به تعداد اکتیویتی های مورد نظر کد رو اضافه کنی )
بجای pic1 و 2 هم باید تصاویر آیتم های اول و دوم گرید رو معرفی کنی که بازم میتونی به تعداد مورد نظرت اضافه کنی تا گرید شما آیتم های بیشتری داشته باشه

حالا خارج از on creat این کد رو قرار بده :


class GridAdapter extends BaseAdapter {

@Override
public int getCount() {
// TODO Auto-generated method stub
return activities.length;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return activities[position];
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub

convertView = LayoutInflater.from(List_film.this).inflate(R.layo ut.item, parent,false);
final ImageView imgitem = (ImageView) convertView.findViewById(R.id.imageView_itemgrid);

imgitem.setImageResource(pics[position]);

imgitem.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(activities[position]);


}
});


return convertView;
}
}




و اما یه چیز دیگه که لازم داری اینه که یه layout جدید هم بسازی مثلا با نام item
و کد زیر رو درونش قرار بدی که در اصل تعیین میکنی آیتم های گرید به چه شکل باشه که میتونی با توجه به سلیقه و چیزی که مد نظرت هست اونو تغییر بدی


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"


>

<ImageView
android:id="@+id/imageView_itemgrid"
android:layout_width="120dp"
android:layout_height="120dp"
android:scaleType="fitXY"
android:layout_gravity="center"
android:src="@drawable/ic_launcher" />

</LinearLayout>


امیدوارم مشکلت رو برای استفاده از گرید حل کنه
موفق باشید

zarabela
چهارشنبه 11 تیر 1393, 23:57 عصر
وقتی صفحه جدیدم یه صفحه ساده س مشکلی نداره ولی من میخوام با کلیک روی اون آیتم یه صفحه باز شه که یه لیست داره ... در واقع یه listActivity دارم ... واس این مشکل داره
ولی نمیدونم چطور درستش کنم!

zarabela
پنج شنبه 12 تیر 1393, 00:47 صبح
دوستان لطفا راهنماییم کنید ... ضروریه خیلی :ناراحت:

zarabela
پنج شنبه 12 تیر 1393, 03:13 صبح
با این کد هم که شما دادید ارور میده

SASAN_AH
پنج شنبه 12 تیر 1393, 09:59 صبح
سلام اینجا من جواب همچین سوالی رو با توضیحات دادم برید بخونید یاد بگیرید (http://barnamenevis.org/showthread.php?458205-%D8%B3%D8%A7%D8%AE%D8%AA-gridview)

zarabela
پنج شنبه 12 تیر 1393, 12:29 عصر
سلام اینجا من جواب همچین سوالی رو با توضیحات دادم برید بخونید یاد بگیرید (http://barnamenevis.org/showthread.php?458205-%D8%B3%D8%A7%D8%AE%D8%AA-gridview)



خب منم دقیقا مث همین نوشته بودم .. ولی نمیدونم مشکلش با لیست ویو چی هست چون صفحه های ساده رو ارور نمیده

SASAN_AH
پنج شنبه 12 تیر 1393, 17:15 عصر
میشه یه عکسی از ارور ها بزاری

zarabela
پنج شنبه 12 تیر 1393, 17:44 عصر
موقع اجرا وقتی روی عکس کلیک میکنم این خطا رو میده : unfortunately,...has stopped

SASAN_AH
پنج شنبه 12 تیر 1393, 19:16 عصر
karavat توی androidmanfest تعریف کردی؟


و بجای این

private integer[] mThumbIds={



این رو بنویسید

public Integer[] mThumbIds={

zarabela
پنج شنبه 12 تیر 1393, 21:05 عصر
توی manifest که اینطوری تعریفش کردم:
<activity android:name=".kravat"></activity>

این کاری که گفتید هم انجام دادم ولی درست نشد:افسرده:

SASAN_AH
پنج شنبه 12 تیر 1393, 22:44 عصر
1_شما تصاویر رو توی آداپتور بزارید

2_این کد رو جایگرین کنید



public Object getItem(int position) {
return imageIds[position];
}

public long getItemId(int position) {
return position;
}

3_ حالا مشکل شما گرید ویو هست یا لیست ویو؟؟:متفکر:

zarabela
جمعه 13 تیر 1393, 00:29 صبح
ببینید مشکل من دقیقا اینه:یه گریدویو دارم میخوام وقتی روی یه آیتمش کلیک کردم یه لیست ویو رو بهم نشون بده ولی موقع اجرا و کلیک کردن خطا میده
اما وقتی به جای لیست ویو یه صفحه ساده رو جایگزین میکنم این مشکل رو نداره ، از یه طرف خود لیست ویو هم هیچ مشکلی نداره ... کاملا گیج شدم الان

rubiks.kde
جمعه 13 تیر 1393, 11:24 صبح
ببینید مشکل من دقیقا اینه:یه گریدویو دارم میخوام وقتی روی یه آیتمش کلیک کردم یه لیست ویو رو بهم نشون بده ولی موقع اجرا و کلیک کردن خطا میده
اما وقتی به جای لیست ویو یه صفحه ساده رو جایگزین میکنم این مشکل رو نداره ، از یه طرف خود لیست ویو هم هیچ مشکلی نداره ... کاملا گیج شدم الان

بهتر نیود بجای اینکه این همه کد بزارید حداقل متن خطا رو میزاشتید.از روی کدی که قابل اجرا نیست چطوری باید به خطا پی برد.

همچنین در ایجاد تاپیک دقت کنید و عنوان مناسب انتخاب کنید والا پاک میشه

zarabela
جمعه 13 تیر 1393, 17:36 عصر
بهتر نیود بجای اینکه این همه کد بزارید حداقل متن خطا رو میزاشتید.از روی کدی که قابل اجرا نیست چطوری باید به خطا پی برد.



خطا رو که گفتم چیه :

موقع اجرا وقتی روی عکس کلیک میکنم این خطا رو میده : unfortunately,...has stopped

لیست ویو هم قراره یه لیست همراه عکس هر آیتم نشون بده و با کلیک روی هر آیتم یه صفحه جدید باز شه(البته هنوز این رو تنظیم نکردم)

SASAN_AH
جمعه 13 تیر 1393, 17:49 عصر
دقیقا متوجه نشدم
اما
شما میخواین وقتی رو ی ایتم از گرید ویو کلیک شده در لیست ویو یه عکس مربوط به گرید ویو رو نشون بده؟

اگر اینطوره چرا از طریق ارجاع با مقدار انجام نمیدین

zarabela
جمعه 13 تیر 1393, 18:01 عصر
خیر .. میخوام فقط یه لیست ویو نشون بده ... لیست ویو هم قراره یه لیست همراه عکس هاشون باشه(منظورم عکس های گریدویو نیست)
واقعا ببخشید میدونم خیلی وقتتون رو گرفتم:خجالت:

rubiks.kde
جمعه 13 تیر 1393, 21:17 عصر
خطا رو که گفتم چیه :

موقع اجرا وقتی روی عکس کلیک میکنم این خطا رو میده : unfortunately,...has stopped

لیست ویو هم قراره یه لیست همراه عکس هر آیتم نشون بده و با کلیک روی هر آیتم یه صفحه جدید باز شه(البته هنوز این رو تنظیم نکردم)







منظورم خطایی هست که در logcat نمایش داده میشه

zarabela
شنبه 14 تیر 1393, 02:48 صبح
منظورم خطایی هست که در logcat نمایش داده میشه

منظورتون اینه؟:

Could not open '/sys/class/power_supply/genymotion_fake_path/present'