【问题标题】:I am having custom ListView having two textviews and one button i want to launch another activity on every button click in row?我有自定义 ListView 有两个 textviews 和一个按钮我想在行中的每个按钮单击时启动另一个活动?
【发布时间】:2017-05-01 10:57:00
【问题描述】:

我希望当连续单击按钮时,它将启动另一个活动,该活动将显示特定行的详细信息。!
如何为每一行设置监听器按钮。

主要活动:

公共类 MainActivity 扩展 AppCompatActivity {

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

    String[] friendList = {"Javad","Usama","Umar","Bilal","Bhutta sb","Zain Ul Abidin"};

    ListAdapter listAdapter = new CustomClass(this,friendList);
    ListView listView = (ListView)findViewById(R.id.listview);
    listView.setAdapter(listAdapter);



    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {

            String name = String.valueOf(parent.getItemAtPosition(position));

            Toast.makeText(MainActivity.this,name,Toast.LENGTH_SHORT).show();

        }
    });

}

}

【问题讨论】:

  • 在 onItemClick() 中使用 if(view=R.id.BUTTONID){ start new Activity }

标签: android listview android-custom-view


【解决方案1】:

onItemClick 内部

if(view=R.id.ButtonID)
{ 
launch new Activity
 }

【讨论】:

  • 您可以使用 switch 或 if else 。 positon = 0 表示单击的第一个按钮,因此启动第一个活动与其他按钮相同
【解决方案2】:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String[] friendList = {"Javad","Usama","Umar","Bilal","Bhutta sb","Zain Ul Abidin"};

    ListAdapter listAdapter = new CustomClass(this,friendList);
    ListView listView = (ListView)findViewById(R.id.listview);
    listView.setAdapter(listAdapter);



    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {

            String name = String.valueOf(parent.getItemAtPosition(position));
            Intent i = new Intent(this,SecondActivity.class);
            i.putExtra("selectedValue",friendList[position]);
            startActivity(i);
            Toast.makeText(MainActivity.this,name,Toast.LENGTH_SHORT).show();

        }
    });

在 OnCreate 下的第二个活动中

if(getIntent().getExtras() != null)
{
    String strData = getIntent().getExtras().getString("selectedValue")
}

【讨论】:

    【解决方案3】:

    您可以在适配器中绑定按钮单击侦听器,而不是在 onItemClick
    在 getView 方法中返回视图之前。如果您不理解此答案,请输入您的自定义适配器代码

          @Override
            public View getView(final int position, View convertView, ViewGroup parent) {
                LayoutInflater myCustomInflater = LayoutInflater.from(getContext());
                View customView = myCustomInflater.inflate(row, parent, false);
                String singleFoodItem = getItem(position);
                TextView itemText = (TextView) customView.findViewById(R.id.textView);
                ImageView buckysImage = (ImageView) customView.findViewById(R.id.imageView);
                itemText.setText(singleFoodItem);
    Button button = customView.findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(position == 0){
                      //go for next activity
                    }
                }
            });
                itemText.setText(singleFoodItem);
                buckysImage.setImageResource(R.mipmap.doctorcartoon);
                return customView;
            }
    

    【讨论】:

    • @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater myCustomInflater = LayoutInflater.from(getContext());查看 customView = myCustomInflater.inflate(row, parent, false); String singleFoodItem = getItem(位置); TextView itemText = (TextView) customView.findViewById(R.id.textView); ImageView buckysImage = (ImageView) customView.findViewById(R.id.imageView); itemText.setText(singleFoodItem); buckysImage.setImageResource(R.mipmap.doctorcartoon);返回自定义视图; }
    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 2021-01-29
    相关资源
    最近更新 更多