Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在另一个imageview和textview中设置列表视图项的图像和文本_Java_Android_Listview - Fatal编程技术网

Java 在另一个imageview和textview中设置列表视图项的图像和文本

Java 在另一个imageview和textview中设置列表视图项的图像和文本,java,android,listview,Java,Android,Listview,我有一组图像和字符串,如下所示: String[] stations = new String[] { "GHOTKI 91 Radio FM","UmerKot 91.4 Radio","TMK 100.20 Radio" }; public static int [] images ={R.drawable.ghotkifmlogo,R.drawable.umerkotfmlogo,R.drawable.tmkfmlogo}; lv_tracks.setOnIte

我有一组图像和字符串,如下所示:

String[] stations = new String[] {
            "GHOTKI 91 Radio FM","UmerKot 91.4 Radio","TMK 100.20 Radio"
};

public static int [] images ={R.drawable.ghotkifmlogo,R.drawable.umerkotfmlogo,R.drawable.tmkfmlogo};
lv_tracks.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          mSelectedTrackTitle.setText(stations[position]);
          mSelectedTrackImage.setImageResource(images[position]);
       } 
在自定义列表视图中,如何在另一个图像视图和文本视图中替换它们

我需要每次使用单击项目的图像和文本更改imageview和textview

这是我的自定义适配器:

public class TrackAdapter extends  BaseAdapter{
    String [] description;
    Context context;
    int [] imageId;

    public TrackAdapter(Context c, String[] d, int[] prgmImages) {

        description=d;
        context= c;
        imageId=prgmImages;

    }

    @Override
    public int getCount() {
        return description.length;
    }

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

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

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        if(convertView == null){
            convertView = LayoutInflater.from(context).inflate(R.layout.cardviewlayout,null);
        }
        //get the textview and set its text
        TextView tv=(TextView) convertView.findViewById(R.id.tracktitle);
        //get the img view and set its img icon
        ImageView im=(ImageView) convertView.findViewById(R.id.trackimage);

        tv.setText(description[position]);
        im.setImageResource(imageId[position]);

        return convertView;
    }
以下是主要活动:

private TextView mSelectedTrackTitle;
    private ImageView mSelectedTrackImage;
    private MediaPlayer mMediaPlayer;
    private ImageView mPlayerControl;
    ListView lv_tracks;
    TrackAdapter track_adapter;

    String[] stations = new String[] {
            "GHOTKI 91 Radio FM","UmerKot 91.4 Radio","TMK 100.20 Radio"
    };
     public static int [] images ={R.drawable.ghotkifmlogo,R.drawable.umerkotfmlogo,R.drawable.tmkfmlogo};



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

        mMediaPlayer = new MediaPlayer();



        //get a reference to our ListView so we can associate it with our custom ArrayAdapter
        lv_tracks = (ListView) findViewById(R.id.track_list);
        //create a new CustomAdapter
        track_adapter =new TrackAdapter(this,stations,images);
        lv_tracks.setAdapter(track_adapter);//connect the ListView with myCustomAdapter

        //Want to set selected image and title here in these
        mSelectedTrackTitle = (TextView)findViewById(R.id.selected_track_title);
        mSelectedTrackImage =(ImageView)findViewById(R.id.selected_track_image);
lv_tracks.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
??
}
private TextView mSelectedTrackTitle;
私有图像视图mSelectedTrackImage;
私有媒体层;
私有图像视图mPlayerControl;
ListView lv_轨道;
轨道适配器轨道适配器;
字符串[]站=新字符串[]{
“GHOTKI 91调频收音机”、“UmerKot 91.4收音机”、“TMK 100.20收音机”
};
public static int[]image={R.drawable.ghotkifmlogo,R.drawable.umerkotfmllogo,R.drawable.tmkfmlogo};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMediaPlayer=新媒体播放器();
//获取对ListView的引用,以便将其与自定义ArrayAdapter关联
lv_轨迹=(ListView)findViewById(R.id.track_列表);
//创建新的CustomAdapter
track_adapter=新的TrackAdapter(此、站点、图像);
lv_tracks.setAdapter(track_adapter);//将ListView与myCustomAdapter连接
//要在这些中设置所选图像和标题吗
mSelectedTrackTitle=(TextView)findViewById(R.id.selected\u track\u title);
mSelectedTrackImage=(ImageView)findViewById(R.id.selected\u track\u image);
lv_tracks.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
??
}
我真的不明白如何处理OnItemSelecthere。
为了更改图像和文本。

您可以使用listviewOnItemClickListener获取当前项目位置,它将返回所单击项目的位置,然后您可以使用此位置作为所需操作

   lv_tracks.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    public void onItemClick(AdapterView<?> parent, View view,
                                            int position, long id) {
        mSelectedTrackTitle.setText(stations[position]);
    mSelectedTrackImage.setImageDrawable(ContextCompat.getDrawable(this,images [position])); 
   // or 
        mSelectedTrackImage.setImageResource(images [position]);
        }
lv_tracks.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
mSelectedTrackTitle.setText(站[位置]);
mSelectedTrackImage.setImageDrawable(ContextCompat.getDrawable(这是图像[位置]);
//或
mSelectedTrackImage.setImageResource(图像[位置]);
}

试试这样的方法

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    mSelectedTrackTitle.setText( stations[position] );
    mSelectedTrackImage.setImageResource( images[positions] );
}
public void onItemClick(AdapterView父视图、视图视图、整型位置、长id){
mSelectedTrackTitle.setText(站[位置]);
mSelectedTrackImage.setImageResource(图像[位置]);
}

它将从阵列中单击的位置获取站点名称和图像,并更新您的视图。

您可以这样实现:

String[] stations = new String[] {
            "GHOTKI 91 Radio FM","UmerKot 91.4 Radio","TMK 100.20 Radio"
};

public static int [] images ={R.drawable.ghotkifmlogo,R.drawable.umerkotfmlogo,R.drawable.tmkfmlogo};
lv_tracks.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          mSelectedTrackTitle.setText(stations[position]);
          mSelectedTrackImage.setImageResource(images[position]);
       } 
lv_tracks.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
mSelectedTrackTitle.setText(站[位置]);
mSelectedTrackImage.setImageResource(图像[位置]);
} 

是否要移动到onItem中的下一项单击否,我要替换imageview和textview(当前分别没有图像源和文本)点击项目的图像和文本。无论何时点击。您都可以使用listview
OnItemClickListener
获取它,它返回点击项目的位置,然后您可以使用此位置作为所需操作是的。我不知道如何设置?这实际上是我的问题。天哪。谢谢!!工作得很好。