【问题标题】:How to set a button outside listview如何在列表视图之外设置按钮
【发布时间】:2016-04-20 08:59:36
【问题描述】:

在我的活动中,我有一个列表视图和一个按钮。每个都有不同的目的。

我的列表视图显示另一个活动中的项目详细信息。

我的按钮打开另一个活动。

这里的listview没有任何问题。但是我的按钮不起作用。

在我的代码中,我为列表视图和按钮使用了以下示例

    public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener{

   private Button buttonaddticket;

    private ListView listView;
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.MainActivity );

            listView = (ListView) findViewById(R.id.srListView);

            listView.setOnItemClickListener(this);

            buttonaddticket = (Button) findViewById(R.id.btnaddticket);

            //Setting listeners to button
            buttonaddticket.setOnClickListener((View.OnClickListener) this);

        }
        .
        .
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = new Intent(this, SingleTicket.class);
        .
        }


    public void onClick(View v) {
        if(v == buttonaddticket){
        .
        .
        }
    }
        }

问题是如何在同一个活动中为我的按钮实现 onClickListener?

【问题讨论】:

  • yourButton.setOnClickListener()
  • 在 oncreate 中的按钮上设置监听器
  • 是的,我已经尝试过了,但似乎 OnClickListener 和 OnItemClickListener 在同一活动中不起作用
  • 谢谢大家。问题是在类中实现 View.OnClickListener。我已经回答了我的问题。
  • @Phan Văn Linh,是的。如果我不滚动,我看不到,View.OnClickListener。现在我可以看到:)。非常感谢您的努力。

标签: android


【解决方案1】:

您可以为您的Activity 实现多个Listener

public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener,View.OnClickListener{

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         // handle listview on item click
    }

    @Override
    public void onClick(View view){
         switch (view.getId()){
                    //handle multiple view click events
         }
    }

}

【讨论】:

    【解决方案2】:

    你需要做的是获取按钮的引用并使用“View.OnClickListener”接口来获取点击注册。为了确保按钮注册单击,它需要将其侦听器设置为“this”活动。与您的按钮相比,这将允许您的列表单独获取点击次数。

    public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener, View.OnClickListener {
    
      private Button yourButton;
      private ListView listView;
    
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.MainActivity);
    
          yourButton = (Button) findViewById(/* Your button id */);
          yourButton.setOnClickListener(this);
    
          listView = (ListView) findViewById(/* Your list id */);
          listView.setOnItemClickListener(this);
      }
    
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         // handle listview item click here
      }
    
      @Override
      public void onClick(View view){
           //Handle button click here
      }
    }
    

    【讨论】:

      【解决方案3】:

      试试这个!!!

      public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener, View.OnClickListener {
      
       private Button buttonaddticket;
       private ListView listView;
      
       @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.MainActivity);
      
         buttonaddticket = (Button) findViewById(R.id.btnaddticket);
         buttonaddticket.setOnClickListener(this);
      
         listView = (ListView) findViewById(R.id.srListView);
      
        listView.setOnItemClickListener(this);
       }
      
      @Override
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
       // handle listview item click here
      }
      
       @Override
       public void onClick(View view){
         switch(view.getId()){
         case R.id.btnaddticket:
      
         // Enter Code here     
         break;
      
         }
       }
      }
      

      【讨论】:

        猜你喜欢
        • 2013-12-12
        • 1970-01-01
        • 1970-01-01
        • 2017-07-30
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 2022-12-09
        • 1970-01-01
        相关资源
        最近更新 更多