Geeky's World Ответов: 0

Один listview в XML и два arraylist в java-файле.


одно представление списка в xml - файле и два списка arraylist используются в java-классе, как получить значение при длинном щелчке элемента в представлении списка из 2-го arraylist corrosponds в первый aarraylist.(как и контактный номер и имя контакта, только имя контакта будет отображаться в виде списка, и когда вы долго нажимаете на имя, контекстное меню покажет 3 варианта вызова, SMS и удаления... при нажатии на кнопку вызова будет запущена функция телефонного звонка, а также для sms и кнопки удаления ).
package com.example.optionmenu;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    ArrayList<String> name = new ArrayList<String>();
    ArrayList<String> phonenumber = new ArrayList<String>();
    ArrayAdapter<String> adapter;
    ListView listcon;
    String corrosphonenumber;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listcon=findViewById(R.id.listView);

        name.add("Rahul");
        name.add("Ishan");
        name.add("Manoj");
        name.add("Modi");

        phonenumber.add("1234567890");
        phonenumber.add("0987654321");
        phonenumber.add("1111111111");
        phonenumber.add("2222222222");

        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, name);
        listcon.setAdapter(adapter);
        registerForContextMenu(listcon);

    }


    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        if(v.getId()==R.id.listView){
            AdapterView.AdapterContextMenuInfo info=(AdapterView.AdapterContextMenuInfo) menuInfo;

        }
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu,menu);
        menu.setHeaderTitle("Choose Action");


    }
    @Override
    public boolean onContextItemSelected(MenuItem item){
        if(item.getItemId()==R.id.call){
             Toast.makeText(getApplicationContext(),"Calling",Toast.LENGTH_LONG).show();
        }
        else if(item.getItemId()==R.id.sms){
            Toast.makeText(getApplicationContext(),"sending sms",Toast.LENGTH_LONG).show();
        }else if(item.getItemId()==R.id.dlt) {
            Toast.makeText(getApplicationContext(), "delete", Toast.LENGTH_LONG).show();
        }
        else {
            return false;
        }
        return true;
    }




    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater=getMenuInflater();
        menuInflater.inflate(R.menu.menu2,menu);
        menu.add("Add Contacts").setIcon(
                R.drawable.iii);
        return true;

    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        Intent intent=new Intent(MainActivity.this,addContact.class);
        startActivityForResult(intent,1);
        return super.onOptionsItemSelected(item);

        /*phoneNumber = editEnterNo.getText().toString();
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:" + phoneNumber));*/
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

    }
}


Что я уже пробовал:

я путаю, как получить доступ к элементам и установить телефонный звонок на соответствующий номер

David Crow

В обработчике длинных кликов будет передан параметр position. Используйте это как индекс в name и phonenumber массивы.

0 Ответов