【问题标题】:How to use Intent in custom ListView如何在自定义 ListView 中使用 Intent
【发布时间】:2016-09-13 13:52:25
【问题描述】:

我想在MainActivity 中使用 Intent。 我想当我点击 ListView 项目时转移到其他 Activity 。 我使用自定义ListView。 这个自定义的ListView 创建了ٌ下面的培训站点:

https://www.caveofprogramming.com/guest-posts/custom-listview-with-imageview-and-textview-in-android.html

自定义列表视图:

package mypackage;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class CustomAdapter extends BaseAdapter{   
String [] result;
Context context;
int [] imageId;
  private static LayoutInflater inflater=null;
public CustomAdapter(mainActivity mainActivity, String[] prgmNameList,     int[] prgmImages) {
    // TODO Auto-generated constructor stub
    result=prgmNameList;
    context=mainActivity;
    imageId=prgmImages;
     inflater = ( LayoutInflater )context.
             getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return result.length;
}

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

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

public class Holder
{
    TextView tv;
    ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    Holder holder=new Holder();
    View rowView;       
         rowView = inflater.inflate(R.layout.program_list, null);
         holder.tv=(TextView) rowView.findViewById(R.id.textView1);
         holder.img=(ImageView) rowView.findViewById(R.id.imageView1);       
     holder.tv.setText(result[position]);
     holder.img.setImageResource(imageId[position]);         
     rowView.setOnClickListener(new OnClickListener() {            
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Toast.makeText(context, "You Clicked "+result[position], Toast.LENGTH_LONG).show();
        }
    });   
    return rowView;
}

}

主要活动:

package mypackage;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.AdapterView;

public class MainActivity extends Activity {

    ListView lv;

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

    listView.setOnItemClickListener(new     AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int     position, long id) {   
    Intent myIntent = new Intent(MainActivity.this,     SecondActivity.class);
    startActivity(myIntent);
    }
    });

} }

【问题讨论】:

    标签: java android listview android-intent


    【解决方案1】:

    更新您的 CustomAdapter.java

    package mypackage;
    
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    public class CustomAdapter extends BaseAdapter{   
    String [] result;
    Context context;
    int [] imageId;
      private static LayoutInflater inflater=null;
    public CustomAdapter(mainActivity mainActivity, String[] prgmNameList,     int[] prgmImages) {
        // TODO Auto-generated constructor stub
        result=prgmNameList;
        context=mainActivity;
        imageId=prgmImages;
         inflater = ( LayoutInflater )context.
                 getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return result.length;
    }
    
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    
    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    
    public class Holder
    {
        TextView tv;
        ImageView img;
    }
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        Holder holder=new Holder();
        View rowView;       
             rowView = inflater.inflate(R.layout.program_list, null);
             holder.tv=(TextView) rowView.findViewById(R.id.textView1);
             holder.img=(ImageView) rowView.findViewById(R.id.imageView1);       
         holder.tv.setText(result[position]);
         holder.img.setImageResource(imageId[position]);         
         rowView.setOnClickListener(new OnClickListener() {            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(context, "You Clicked "+result[position], Toast.LENGTH_LONG).show();
             Intent i = new Intent(getApplicationContext(),SecondActivity.class);
             startActivity(i);    
            }
        });   
        return rowView;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-19
      • 2014-06-04
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      • 2015-02-18
      • 2011-11-11
      • 2018-01-06
      相关资源
      最近更新 更多