Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何获取ListView';上下文菜单中的文本视图的意图?_Android_Listview_Contextmenu - Fatal编程技术网

Android 如何获取ListView';上下文菜单中的文本视图的意图?

Android 如何获取ListView';上下文菜单中的文本视图的意图?,android,listview,contextmenu,Android,Listview,Contextmenu,我有一个列表视图。此ListView有一个数组,该数组有5个数字。首先,在第一个活动中,用户在第二个活动的列表视图中选择5个数字和这5个数字。当用户点击上下文菜单上的任何数字时,我想用这5个数字开始一个意图。意图将启动该位置。但是为什么我不能得到所选的号码 public class AnaMenu extends AppCompatActivity { public static final int MENU_Ara = Menu.FIRST+1; int sayı = 50;

我有一个列表视图。此ListView有一个数组,该数组有5个数字。首先,在第一个活动中,用户在第二个活动的列表视图中选择5个数字和这5个数字。当用户点击上下文菜单上的任何数字时,我想用这5个数字开始一个
意图。意图将启动该位置。但是为什么我不能得到所选的号码

public class AnaMenu extends AppCompatActivity {
    public static final int MENU_Ara = Menu.FIRST+1;
    int sayı = 50;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ana_menu);
        ListView liste = (ListView) findViewById(R.id.oyun);

        OyunTextView oyunTextView = new OyunTextView();
        liste.setAdapter(oyunTextView);
        registerForContextMenu(liste);
    }

    class OyunTextView extends BaseAdapter {

        @Override
        public int getCount() {
            Intent i = getIntent();
            final ArrayList<String> secilmis = i.getStringArrayListExtra("listem");

            return secilmis.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            convertView = getLayoutInflater().inflate(R.layout.oyuntextview , null);
            TextView namesbox = (TextView)convertView.findViewById(R.id.isim);
            TextView sayılar = (TextView)convertView.findViewById(R.id.sayı);
            Intent i = getIntent();
            final ArrayList<String> secilmis = i.getStringArrayListExtra("listem");
            namesbox.setText(secilmis.get(position));

            sayılar.setText(String.valueOf(sayı));
            if (sayı == 50) {
                sayılar.setTextColor(getResources().getColor(R.color.elli));}
                return convertView;
            }
        }

        @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
            menu.add(Menu.NONE, MENU_Ara, Menu.NONE, "Ara");

            super.onCreateContextMenu(menu, v, menuInfo);
        }

        @Override
        public boolean onContextItemSelected(MenuItem item) {
            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();

            Intent i = getIntent();
            secilmis = i.getStringArrayListExtra("listem");

            switch (item.getItemId()) {
                case MENU_Ara:
                    Intent ara = new Intent(Intent.ACTION_DIAL);

                    ara.setData(Uri.parse());
                    startActivity(ara);
                    return true;
            }

            return super.onContextItemSelected(item);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater menuInflater = getMenuInflater();
            menuInflater.inflate(R.menu.mains,menu);

            return super.onCreateOptionsMenu(menu);
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.action_browse :ayar();return true;

                case R.id.backbut: geri();return true;
            }

            return super.onOptionsItemSelected(item);
        }

        private void ayar() {
            Intent i = new Intent(AnaMenu.this, Ayarlar.class);
            startActivity(i);
        }

        private void geri() {
            Intent ii = new Intent(AnaMenu.this, MainActivity.class);

            startActivity(ii);
            AnaMenu.this.finish();
        }
    }
}
public类菜单扩展了AppCompative活动{
公共静态最终int MENU\u Ara=MENU.FIRST+1;
int sayı=50;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity菜单);
ListView liste=(ListView)findViewById(R.id.oyun);
OyunTextView OyunTextView=新的OyunTextView();
setAdapter(oyunTextView);
registerForContextMenu(列表);
}
类OyunTextView扩展了BaseAdapter{
@凌驾
public int getCount(){
Intent i=getIntent();
最终ArrayList secilmis=i.getStringArrayListExtra(“列表”);
返回secilmis.size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
convertView=GetLayoutFlater().充气(R.layout.oyuntextview,null);
TextView名称框=(TextView)convertView.findViewById(R.id.isim);
TextView sayılar=(TextView)convertView.findViewById(R.id.sayı);
Intent i=getIntent();
最终ArrayList secilmis=i.getStringArrayListExtra(“列表”);
setText(secilmis.get(position));
sayılar.setText(String.valueOf(sayı));
如果(假设ı=50){
说ılar.setTextColor(getResources().getColor(R.color.elli));}
返回视图;
}
}
@凌驾
public void onCreateContextMenu(ContextMenu菜单,视图v,ContextMenu.ContextMenuInfo菜单信息){
menu.add(menu.NONE,menu_Ara,menu.NONE,“Ara”);
super.onCreateContextMenu(menu,v,menuInfo);
}
@凌驾
公共布尔值onContextItemSelected(MenuItem项){
AdapterView.AdapterContextMenuInfo信息=(AdapterView.AdapterContextMenuInfo)项。getMenuInfo();
Intent i=getIntent();
secilmis=i.getStringArrayListExtra(“ListM”);
开关(item.getItemId()){
案例菜单:
意向ara=新意向(意向.行动拨号);
ara.setData(Uri.parse());
星触觉(ara);
返回true;
}
返回super.onContextItemSelected(项目);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
MenuInflater MenuInflater=getMenuInflater();
菜单充气器(右菜单、电源、菜单);
返回super.onCreateOptions菜单(菜单);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
case R.id.action_browse:ayar();返回true;
case R.id.backbut:geri();返回true;
}
返回super.onOptionsItemSelected(项目);
}
二等兵{
意图i=新意图(AnaMenu.this,Ayarlar.class);
星触觉(i);
}
私人机构{
意图ii=新意图(AnaMenu.this,MainActivity.class);
星触觉(ii);
AnaMenu.this.finish();
}
}
}

您可以在
onItemClickListener
方法中使用
arraylistname.get(position)
来获取所选项目的位置。

String value=secilmis.get(info.position).toString();它不工作。switch(item.getItemId()){case MENU\u Ara:Intent Ara=new Intent(Intent.ACTION\u DIAL);String value=secilmis.get(info.position.toString();Ara.setData(Uri.parse(value));startActivity(Ara);此Listview已自定义。它有3个文本视图。您可以共享您的完整源吗?要获取所选项目计数(选中),请使用:Listview.getCheckedItemCount(),我已共享所有第二个活动。现在已编辑。我已获得它。但现在有另一个问题。如何从contextmenuselected[link](方法)中获取info.position