[英]Onclicklistener moving to same activity in android
嗨,在我的應用程序中,我正在使用網格視圖布局顯示帶有文本的圖像。在這種情況下,我使用列表視圖和框架布局來設計xml。
在那我使用了6個關於我們,照相館等的項目。現在,我的問題是,如果我單擊“關於我們”,我想轉到關於我們的活動,如果我單擊照相館,它將移至flickr活動類。
但是如果我單擊任何活動,它就會移到同一活動。現在,我不想那樣,我想移至特定活動
MainActivity類
public class MainActivity extends Activity implements OnClickListener
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
final int pos = getIntent().getIntExtra("pos",0);
GridView gridView = (GridView)findViewById(R.id.gridview);
gridView.setAdapter(new MyAdapter(this));
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
//Grab the item position here and write further code
switch (pos) {
case 0:
Intent nextScreen = new Intent(getApplicationContext(), Aboutus.class);
startActivity(nextScreen);
break;
case 1:
Intent nextScreen1 = new Intent(getApplicationContext(), FlickrActivity.class);
startActivity(nextScreen1);
break;
}
}
});
}
private class MyAdapter extends BaseAdapter
{
private List<Item> items = new ArrayList<Item>();
private LayoutInflater inflater;
public MyAdapter(Context context)
{
inflater = LayoutInflater.from(context);
items.add(new Item("About Us", R.drawable.aboutus));
items.add(new Item("Photo Gallery", R.drawable.photo));
items.add(new Item("Veg Food", R.drawable.veg));
items.add(new Item("Non Veg Food", R.drawable.nonveg));
items.add(new Item("Location", R.drawable.contactus));
items.add(new Item("Contact Us", R.drawable.contactus));
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int i)
{
return items.get(i);
}
@Override
public long getItemId(int i)
{
return items.get(i).drawableId;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup)
{
View v = view;
ImageView picture;
TextView name;
if(v == null)
{
v = inflater.inflate(R.layout.gridview_item, viewGroup, false);
v.setTag(R.id.picture, v.findViewById(R.id.picture));
v.setTag(R.id.text, v.findViewById(R.id.text));
}
picture = (ImageView)v.getTag(R.id.picture);
name = (TextView)v.getTag(R.id.text);
Item item = (Item)getItem(i);
picture.setImageResource(item.drawableId);
name.setText(item.name);
return v;
}
private class Item
{
final String name;
final int drawableId;
Item(String name, int drawableId)
{
this.name = name;
this.drawableId = drawableId;
}
}
}
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
//Grab the item position here and write further code
switch (pos) {
case 0:
Intent nextScreen = new Intent(getApplicationContext(), Aboutus.class);
startActivity(nextScreen);
break;
case 1:
Intent nextScreen1 = new Intent(getApplicationContext(), FlickrActivity.class);
startActivity(nextScreen1);
break;
}
}
});
在此代碼中,您打開的pos
是常量final int pos = getIntent().getIntExtra("pos",0);
傳遞的pos或零。 但是,您應該打開position
參數。 見下文!
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
//Grab the item position here and write further code
switch (position) {
case 0:
Intent nextScreen = new Intent(getApplicationContext(), Aboutus.class);
startActivity(nextScreen);
break;
case 1:
Intent nextScreen1 = new Intent(getApplicationContext(), FlickrActivity.class);
startActivity(nextScreen1);
break;
}
}
});
這樣就可以了!°
使用itemclicklistener方法中的位置
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
switch (position) {
case 0:
Intent nextScreen = new Intent(getApplicationContext(), Aboutus.class);
startActivity(nextScreen);
break;
case 1:
Intent nextScreen1 = new Intent(getApplicationContext(), FlickrActivity.class);
startActivity(nextScreen1);
break;
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.