PDA

View Full Version : یه سوال ابتدایی !!!!



majid.ostadi
پنج شنبه 03 مهر 1393, 10:56 صبح
با سلام دوستان
من تو برنامه ام دو تا لایوت دارم. یکی main layout که لایوت اصلی برنامه است و دیگری second layout که لایوتی که خودم ساختم. تو main layout یه منو تعریف کردم که از طریق این منو میره به second layout که داخل این لایوت یه گالری ساختم.
مشکلم اینجاس که چطوری این گالری رو تو main activity فراخوانی کنم و بتونم نمایش بدم
کدهای لازم رو میزارم

کد های second layout :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<Gallery
android:id="@+id/gallery1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="100dp" />


</LinearLayout>

کد های main layout :



<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

</RelativeLayout>

کدهای کلاس گالری :



package com.example.gallery;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class GalleryImageAdapter extends BaseAdapter
{
private Context mContext;

private Integer[] mImageIds = {
R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable.image4,
R.drawable.image5,

};

public GalleryImageAdapter(Context context)
{
mContext = context;
}

public int getCount() {
return mImageIds.length;
}

public Object getItem(int position) {
return position;
}

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


// Override this method according to your need
public View getView(int index, View view, ViewGroup viewGroup)
{

ImageView i = new ImageView(mContext);

i.setImageResource(mImageIds[index]);
i.setLayoutParams(new Gallery.LayoutParams(200, 200));

i.setScaleType(ImageView.ScaleType.FIT_XY);

return i;
}
}



کدهای main activity :



package com.example.gallery;


import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity {

ImageView selectedImage;
private Integer[] mImageIds =
{
R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable.image4,
R.drawable.image5,
};


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


View inflatedView = getLayoutInflater().inflate(R.layout.secondlayout, null);
Gallery gallery = (Gallery) inflatedView.findViewById(R.id.gallery1);
gallery.setSpacing(1);
gallery.setAdapter(new GalleryImageAdapter(this));

// clicklistener for Gallery
gallery.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
selectedImage.setImageResource(mImageIds[position]);
}
});

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}

public boolean onOptionsItemSelected(MenuItem item)
{
if(item.getItemId() == R.id.Learnings)
{

}
if(item.getItemId() == R.id.Gallery)
{
startActivity(new Intent(MainActivity.this, GoGallery.class));
}
return super.onOptionsItemSelected(item);
}

}

majid.ostadi
پنج شنبه 03 مهر 1393, 16:48 عصر
یعنی تا حالا هیچ کسی این مشکل رو نداشته؟؟؟؟؟
یا من نتونستم منظورم رو واضح بیان کنم؟؟؟؟

omid.n1990
پنج شنبه 03 مهر 1393, 17:25 عصر
منظور رو واضح متوجه نشدم. ضمن اینکه تو کدهای بالا اکتیویتی GoGallery رو کلا نگذاشتید و بهش اشاره نکردید! در ضمن لایوتها فراخوانی نمی شن و اصطلاحا میگیم اکتیویتی رو فراخوانی میکنیم که هر اکتیویتی نمایشگر مثلا یک لایوت و یا بیشتر هست.

خلاصه، اگر منظورتون قرار دادن یک دکمه در اکتیویتی اصلی و فراخوانی این گالری (اکتیویتی GoGallery) است، خوب یک دکمه در لایوت main اضافه میکنید و توی اکتیویتی main کد رویداد کلیک برای اون دکمه ایجاد میکنید و اکتیویتی دوم رو فراخوانی میکنید همینطور که از اینجا اکتیوتی دوم رو با منو فراخوانی کردید همین کد رو برای رویداد کلیک دکمه میگذارید.

ولی اگر منظورتون اینه که توی همون ابتدا گالری تو صفحه اصلی بیاد و نیازی نباشه شما دکمه یا منویی رو بزینید و گالری نمایش داده بشه. خوب اکتیویتی و لایوت main شما به دردتون نمیخوره و میتونید اونهارو حذف کنید و کلا اکتیوتی GoGallery رو به عنوان اکتیویتی پیش فرض قرار بدید.

majid.ostadi
پنج شنبه 03 مهر 1393, 19:26 عصر
منظور رو واضح متوجه نشدم. ضمن اینکه تو کدهای بالا اکتیویتی GoGallery رو کلا نگذاشتید و بهش اشاره نکردید! در ضمن لایوتها فراخوانی نمی شن و اصطلاحا میگیم اکتیویتی رو فراخوانی میکنیم که هر اکتیویتی نمایشگر مثلا یک لایوت و یا بیشتر هست.

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


دوست من ممنون که حداقل وقت گذاشتی و خوندی و جواب دادی
کلاس GoGallery کارش اینه که تا منو رو کلیک کردی ببره به لایوت دومی
من میخوام تو لایوت دومی گالری نمایش داده بشه که نمایش داده نمیشه. مشکلم همینه

majid.ostadi
شنبه 05 مهر 1393, 12:46 عصر
دوستان کسی تا حالا این مشکل رو نداشته؟؟؟؟

sara.nikzadeh
شنبه 05 مهر 1393, 14:19 عصر
دوستان منم مثل این دوستمون این مشکل رو دارم
چکار باید بکنم؟؟؟؟؟؟:قلب::قلب::قلب::قل :