Hello.
 I have several questions about context menu.
1. how to start context menu through long click listener?
2. How to change background color of listviewrow when programme calls
the context menu.

my Code:
public class listmysec extends Activity{

        /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);
        //
        ListView lv= (ListView)findViewById(R.id.listview);
        //
        registerForContextMenu(lv);
        // create the grid item mapping
        String[] from = new String[] {"rowid", "col_1", "col_2",
"col_3"};
        int[] to = new int[] { R.id.item1, R.id.item2, R.id.item3,
R.id.item4 };

        // prepare the list of all records
        List<HashMap<String, String>> fillMaps = new
ArrayList<HashMap<String, String>>();
        for(int i = 0; i < 10; i++){
            HashMap<String, String> map = new HashMap<String,
String>();
            map.put("rowid", "" + i);
            map.put("col_1", "col_1_item_" + i);
            map.put("col_2", "col_2_item_" + i);
            map.put("col_3", "col_3_item_" + i);
            fillMaps.add(map);
        }

        //
        SimpleAdapter adapter = new SimpleAdapter(this,
fillMaps,R.layout.grid, from, to);
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new OnItemClickListener()
        {
        public void onItemClick(AdapterView<?> arg0, View arg1, int
arg2, long arg3) {
                TextView item2 = (TextView)arg1.findViewById(R.id.item1);
                String text1 = (String) item2.getText();
                Toast.makeText(getApplicationContext(),"You clicked on item
"+ text1 , Toast.LENGTH_LONG).show();
                arg1.setBackgroundColor(0x30ffffff);

                }

        });
        //Устанавливаем слушатель на кнпку
        lv.setOnItemLongClickListener(new OnItemLongClickListener(){
        //Долгий клик по клавише
        public boolean onItemLongClick(AdapterView<?> arg0,     View arg1,
int arg2, long arg3) {
                        ???????????
                arg1.showContextMenu();
                arg1.setBackgroundColor(Color.RED);


                        //TextView item2 = 
(TextView)arg1.findViewById(R.id.item4);
                        //String text4 = (String) item2.getText();
                        //Toast.makeText(getApplicationContext(),"You clicked on
item "+ text4 , Toast.LENGTH_LONG).show();
                                return true;
                }
                        });

    }
    //Добавляем меню
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menulistsec, menu);
        return true;
    }
    //Пишем обработчик кнопок
  //Обрабатываем нажатие клавиш меню
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
           case R.id.back:
                   //Здесь будет новый интент
                   Intent Main = new Intent();
                   Main.setClass(this,ClientActivity.class);
                   startActivity(Main);
                   finish();
                   return true;
            case R.id.exit:

                AlertDialog.Builder builder = new
AlertDialog.Builder(this);
                builder.setMessage("Are your sure you want to
exit?").setCancelable(false)
                .setPositiveButton("Yes",new
DialogInterface.OnClickListener() {


                                        public void onClick(DialogInterface 
dialog, int id) {
                                                listmysec.this.finish();

                                        }
                                })
                                .setNegativeButton("No",new 
DialogInterface.OnClickListener() {


                                        public void onClick(DialogInterface 
dialog, int id) {

                                                dialog.cancel();
                                        }
                                });
                AlertDialog alert = builder.create();
                alert.show();
                return true;
            case R.id.Cycling:
                //Здесь будет новый интент
                   Intent Cyling = new Intent();
                   Cyling.setClass(this,Cycling.class);
                   startActivity(Cyling);
                   finish();
                   return true;
           default:
              return super.onOptionsItemSelected(item);
        }
  }
    //Создаем контекстное меню
    @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.Context_Cycling:
        //переход на корзину

        return true;
      case R.id.details:
        //переход на просмотр
           Intent details = new Intent();
           details.setClass(this,Details_Activity.class);
           startActivity(details);
        return true;
      default:
        return super.onContextItemSelected(item);
      }
    }
}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to