猿问

尝试在我的 ListView 中显示带有 toast 功能的按钮

如何以及在何处添加buttonToastfunction在我的application.


我知道很多次有人问这个问题,但我仍然很困惑,所以任何人都可以提供帮助。


[文本]


[按钮 1] [按钮 2]


[文本]


[按钮 1][按钮 2]


这是我的代码:


public class EngineerRecycler extends AppCompatActivity {

String service_id,type, jsonStr;

String compticketid;

private String TAG = MainActivity.class.getSimpleName();

private ListView lv;


// URL to get contacts JSON

private static String urlpending = "http://localhost/players.php";


ArrayList<HashMap<String, String>> contactList;


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate( savedInstanceState );

    setContentView( R.layout.activity_engineer_recycler );

    Bundle bundle = getIntent().getExtras();

    service_id = bundle.getString( "empid" );

    type = bundle.getString( "type" );

    contactList = new ArrayList<>();

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

    new GetContacts().execute();

}


private class GetContacts extends AsyncTask<Void, Void, Void> {

    @Override

    protected void onPreExecute() {

        super.onPreExecute();

    }

    @Override

    protected Void doInBackground(Void... arg0) {

        HttpHandler sh = new HttpHandler();


        // Making a request to URL and getting a response


            jsonStr = sh.makeServiceCall( urlpending, service_id );



我可以在其中显示项目,listview但是现在我想添加button到其中。


每当我点击它时,toast消息也会弹出。


扬帆大鱼
浏览 177回答 2
2回答

凤凰求蛊

欢迎来到 Stackoverflow。了解您的需求后。这是解决方案。首先在你的模型类中取一个布尔值。class Model {&nbsp; boolean buttonVisible;&nbsp; // settter getter}现在将此布尔值附加到您的适配器中的按钮可见性getView()。holder.button.setVisibility(model.isButtonVisible() ? View.VISIBLE : View.GONE);现在当你想改变一个可见的按钮时。只需更改此布尔值并通知数据更改列表即可。yourList.get(2).setButtonVisible(true);((BaseAdapter) listView.getAdapter()).notifyDataSetChanged();&nbsp;这将使 2 索引按钮可见。如果你在任何地方感到困惑,请问我。这个答案与你的问题有关。不同之处在于 - 在这个答案中,这个人将 CheckBox 附加到模型。您将为模式附加可见性。建议使用RecyclerView,因为考虑到特性,它具有很多性能。喜欢notifyItemDataChanged()只通知改变的项目,是否在 ListView 中所有项目都会被通知。
随时随地看视频慕课网APP

相关分类

Java
我要回答