【问题标题】:On clicked ListView display单击后的 ListView 显示
【发布时间】:2014-09-15 16:32:28
【问题描述】:

我有以下ListView 并希望仅显示在另一个活动中单击的项目。

package com.sclick.govlistview;

import android.content.Intent;
import android.provider.ContactsContract;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;


public class MyActivity extends ActionBarActivity {
    private List<Madaxda> madaxdu = new ArrayList<Madaxda>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        MadaxList();
        MadaxListView();
        RegisterCallBack();

    }

    private void MadaxList() {
        madaxdu.add(new Madaxda("Hassan Sheik","Madaxweyne","MSC", 2, R.drawable.hassan));
        madaxdu.add(new Madaxda("Awali Sheik","Raysal wasaare","Doctor", 2, R.drawable.awali));
        madaxdu.add(new Madaxda("Abdullahi Godah Barre","Ministry of Interior and Federalism","Degree", 2, R.drawable.mi));
        madaxdu.add(new Madaxda("Abdirahman Duale Beyle","Ministry of Foreign Affairs","PHd", 2, R.drawable.ma));
        madaxdu.add(new Madaxda("Mohamed Sheikh Hassan","Ministry of Defence","Degree", 2, R.drawable.eel));
    }

    private void MadaxListView() {
        ArrayAdapter<Madaxda> adapter = new MyListAdapters();
        ListView list = (ListView) findViewById(R.id.madaxdaListView);
        list.setAdapter(adapter);
    }
    private void RegisterCallBack() {
        ListView list = (ListView)findViewById(R.id.madaxdaListView);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View viewClicked,
                                    int position, long id) {
                Madaxda m = madaxdu.get(position);
                Intent intent = new Intent(MyActivity.this, Profile.class);
                intent.putExtra("position", position);
                startActivity(intent);
                //String message = "You have clicked Mudanaha  " +  position +
                     //   "oo magaciisu yahay " + m.getName() + "oo shaqadiisu tahay  "
                     //  + m.getBooska();
               // Toast.makeText(MyActivity.this,message,Toast.LENGTH_SHORT).show();

            }
        });

    }

    private class MyListAdapters extends ArrayAdapter<Madaxda> {
        MyListAdapters() {
            super(MyActivity.this, R.layout.lists, madaxdu);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View itemView = convertView;
            if (itemView == null) {
                itemView = getLayoutInflater().inflate(R.layout.lists, parent, false);
            }
            Madaxda m = madaxdu.get(position);
            ImageView img = (ImageView) itemView.findViewById(R.id.item_icon);
            img.setImageResource(m.getID());
            TextView magaca = (TextView) itemView.findViewById(R.id.magaca_qofka);
            magaca.setText(m.getName());
            TextView shaqo = (TextView) itemView.findViewById(R.id.shaqada_qofka);
            shaqo.setText(m.getBooska());
            TextView sano = (TextView) itemView.findViewById(R.id.inta_sano);
            sano.setText("" + m.getYearsInService());
            TextView edu = (TextView) itemView.findViewById(R.id.education);
            edu.setText(m.getEducation());

            return itemView;


        }

    }

}

这里是我的接收活动

package com.sclick.govlistview;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

/**
 * Created by MacRail on 12/09/2014.
 */
public class Profile extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.profile);
        String position = getIntent().getStringExtra("position");

}

    public View getView(final int POSITION, View convertView,ViewGroup parent){
        ImageView img;
        TextView name;
        TextView booskas;
        TextView education;
        TextView yearsInService;
        View view = convertView;
        Log.d("SCLICK","Here is ok");

        if(view == null){

            LayoutInflater la = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            view = la.inflate(R.layout.profile,null);
        }
        img = (ImageView) findViewById(R.id.imageView1);
        name = (TextView)findViewById(R.id.magaca_qofkas);
        booskas = (TextView)findViewById(R.id.shaqada_qofkas);
        education = (TextView)findViewById(R.id.educationka);
        yearsInService = (TextView)findViewById(R.id.inta_sanood);

        img.setImageBitmap(BitmapFactory.decodeByteArray(img.get(POSITION),0,img.get(POSITION).length));
        name.setText(name.get(POSITION));
        booskas.setText(booskas.get(POSITION));
        education.setText(education.get(POSITION));
        yearsInService.setText(yearsInService.get(POSITION));

        return view;
    }
}

【问题讨论】:

    标签: android listview android-intent android-arrayadapter intentservice


    【解决方案1】:

    您似乎是在捆绑一个 int,但在拆分一个字符串。

    试试这条线:

    int position = getIntent().getInt("position");
    

    【讨论】:

      【解决方案2】:

      如果我是你,我会尝试查看我收到的数据类型。理论上你应该得到一个 int 但安全的方法是通过调用 getIntent().getExtras() 来获取内部的 Bundle 然后接下来你尝试通过调用 getInt("position") 或 get("position") 来查看是否收到了你想要的想要。
      如果 Bundle 为空,那么很明显你什么都没有。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多