gpt4 book ai didi

android - 如何使用列表中的自定义按钮将用户重定向到另一个 Activity

转载 作者:行者123 更新时间:2023-11-29 01:51:53 25 4
gpt4 key购买 nike

我写了一段很长的代码,并且在我的一个任务布局中使用了 ListView :

enter image description here

我想知道如何在这种情况下为每个更新按钮创建一个监听器以便移动到另一个 Activity ,我知道如何使用多个 Activity 并在它们之间移动但我想知道如何制作一个仅限听众。

自定义适配器代码:

package com.example.task_9;

import java.util.ArrayList;


import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class TempLyaout extends ArrayAdapter<String> {

Context context;
ArrayList<String> sa;


public TempLyaout(Context context , ArrayList<String> sa) {
super(context,R.layout.temp,sa);
this.context=context;
this.sa = sa;
}



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


LayoutInflater l = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View rowView = l.inflate(R.layout.temp, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.textView1);
ImageView imageView = (ImageView) rowView.findViewById(R.id.imageView1);
Button update = (Button) rowView.findViewById(R.id.button1);


// myDb.open();
// Cursor cursor= myDb.getRowByName(sa.get(position));
// myDb.updateRowByName(cursor.getInt(DBAdapter.COL_ROWID), sa.get(position), cursor.getString(DBAdapter.COL_PASSWD), cursor.getInt(DBAdapter.COL_AGE), isAdmin);
// myDb.close();




textView.setText(sa.get(position));


return rowView;
}






}

这是相关类:

package com.example.task_9;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class UsersActivity extends Activity {

Intent redirect;
ListView list;
ArrayList<String> sa;
DBAdapter myDb;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

@Override
protected void onStart() {

super.onStart();

setContentView(R.layout.users);

list= (ListView) findViewById(R.id.usersList);

redirect = getIntent();

openDB();

/*********************************************/


Cursor cursor = myDb.getAllRows();

cursor.moveToFirst();

ArrayList<String> ha = new ArrayList<String>();

while(cursor.moveToNext()) {

ha.add(cursor.getString(DBAdapter.COL_NAME));

}

cursor.close();


@SuppressWarnings("rawtypes")
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,ha);

list.setAdapter(new TempLyaout(UsersActivity.this,ha));


list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(),
"Click ListItem Number " + position, Toast.LENGTH_LONG)
.show();

}

});



} // end onStart method

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
@Override
protected void onDestroy() {
super.onDestroy();
closeDB();

}// end onDestroy method



///////////////////////////////////////////////////////////////////////////////////////////////////////////////

private void openDB() {
myDb = new DBAdapter(this);
myDb.open();
} // end openDB method

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

private void closeDB() {
myDb.close();
} // end closeDB method


///////////////////////////////////////////////////////////////////////////////////////////////////////////////

}// end main class

最佳答案

在你的 getView 中

       Button update = (Button) rowView.findViewById(R.id.button1);
update.setOnClickListener(mClickListener);

然后

        private OnClickListener mClickListener = new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(ListActivtiy.this,SecondActivity.class);
startActivity(intent);
}
};

还可以使用 viewholder 来实现平滑滚动和性能

http://developer.android.com/training/improving-layouts/smooth-scrolling.html

关于android - 如何使用列表中的自定义按钮将用户重定向到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17504672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com