Android: help create Context menu from listview

可紊 提交于 2019-12-06 12:29:33

This should do the trick. Don't forget to: registerForContextMenu(lvUsers);

/** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.select);

        mListUsers = getUsers();
        lvUsers = (ListView) findViewById(R.id.lv_user);
        lvUsers.setAdapter(new ListAdapter(this, R.id.lv_user, mListUsers));  
        **registerForContextMenu(lvUsers);**      
        }

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
  super.onCreateContextMenu(menu, v, menuInfo);
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.context_menu, menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {
  AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
  switch (item.getItemId()) {
  case R.id.edit:
    editNote(info.id);
    return true;
  case R.id.delete:
    deleteNote(info.id);
    return true;
  default:
    return super.onContextItemSelected(item);
  }
}

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/edit"
          android:title="@string/edit" />
    <item android:id="@+id/delete"
          android:title="@string/delete" />
</menu>

Here is an example that might help you with your second problem.

MainActivity.class

 public class MainActivity extends Activity {
    TextView textView;
    Intent intent;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Data to be passed
        final String data = "String to Pass";

        textView = (TextView) findViewById(R.id.text1);
        textView.setText(data);

        //Pass Data with Button
        final Button btn = (Button) findViewById(R.id.btn1);
          btn.setOnClickListener(new View.OnClickListener() {

              @Override
          public void onClick(View v) {

                intent = new Intent(v.getContext(), SecondActivity.class);
                intent.putExtra("sampleData", data);
                startActivity(intent);  
              }
         });
    }
}

SecondActivity.class

public class SecondActivity extends Activity {
    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         //Get data from Intent
         Bundle extras = getIntent().getExtras();
         String data = extras.getString("sampleData");

         textView = new TextView(this);
         textView.setText("String: " + data);

         setContentView(textView);
    }

}

Don't forget to Add your activity to your AndroidManifest.xml.

AndroidManifest.xml

<activity android:name=".SecondActivity"></activity>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!