2016-08-13 3 views
1

Я пытаюсь сделать вызов определенного номера, когда на главном экране нажата кнопка. Но я получаю сообщение об ошибке. Я не могу реализовать правильный метод. Что я делаю не так? Пожалуйста помоги. Любой подробный ответ будет очень полезен. Вещь @override красная, точка с запятой также красная. Я предполагаю, что это неправильно.Намерение телефонного звонка нажатием кнопки

public class ActivityHome extends Fragment implements OnItemClickListener { 
GridView gridview; 
AdapaterGridView gridviewAdapter; 
ArrayList<GridViewItem> data = new ArrayList<GridViewItem>(); 
Button btemergency; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View v = inflater.inflate(R.layout.fragment_list, container, false); 

    gridview = (GridView) v.findViewById(R.id.gridView1); 
    gridview.setOnItemClickListener(this); 
    btemergency = (Button) v.findViewById(R.id.btemergency); 

    Button call_button = (Button)findViewById(R.id.btemergency); 
    call_button.setOnClickListener(new View.OnClickListener() { 
     @Override public void onClick(View view) 
     { Intent callIntent = new Intent(Intent.ACTION_CALL); 
      callIntent.setData(Uri.parse("tel:123456789")); 
      startActivity(callIntent); } 

    }); 

    data.add(new GridViewItem(getResources().getString(R.string.menu_product), getResources().getDrawable(R.drawable.ic_product))); 
    data.add(new GridViewItem(getResources().getString(R.string.menu_cart), getResources().getDrawable(R.drawable.ic_cart))); 


    data.add(new GridViewItem(getResources().getString(R.string.menu_info), getResources().getDrawable(R.drawable.ic_info))); 


    data.add(new GridViewItem(getResources().getString(R.string.menu_contact), getResources().getDrawable(R.drawable.ic_contact))); 

    setDataAdapter(); 

    return v; 


} 

// Set the Data Adapter 
private void setDataAdapter() { 
    gridviewAdapter = new AdapaterGridView(getActivity(), R.layout.fragment_list_item, data); 
    gridview.setAdapter(gridviewAdapter); 
} 

@Override 
public void onItemClick(final AdapterView<?> arg0, final View view, final int position, final long id) { 
    if (position==0){ 
     startActivity(new Intent(getActivity(), ActivityCategoryList.class)); 
     getActivity().overridePendingTransition (R.anim.open_next, R.anim.close_next); 
    } 
    else if (position==1){ 
     startActivity(new Intent(getActivity(), ActivityCart.class)); 
     getActivity().overridePendingTransition (R.anim.open_next, R.anim.close_next); 


    } 
    else if (position==2){ 
     startActivity(new Intent(getActivity(), ActivityInformation.class)); 
     getActivity().overridePendingTransition (R.anim.open_next, R.anim.close_next); 


    } 
    else { 
     startActivity(new Intent(getActivity(), ActivityContactUs.class)); 
     getActivity().overridePendingTransition (R.anim.open_next, R.anim.close_next); 
    } 

}} 
+1

Разместите трассировки стека, чтобы мы могли увидеть, что ошибка. –

+0

@YasinYaqoobi извините, брось, новичок в android, поэтому не знаю, что вы просите. –

+0

Что вы укажете для целевогоSdkVersion? – Prasad

ответ

0

У вас есть дополнительные фигурные скобки в конце и где метод onClick переопределяется? Я предполагаю, что вы хотите переопределить View.OnClickListener. Можете ли вы попробовать следовать вместо этого и посмотреть, устраняет ли она ошибку времени компиляции.

public class ActivityHome extends Fragment implements OnItemClickListener{ 
    GridView gridview; 
    AdapaterGridView gridviewAdapter; 
    ArrayList<GridViewItem> data = new ArrayList<GridViewItem>(); 
    Button btemergency; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View v = inflater.inflate(R.layout.fragment_list, container, false); 

     gridview = (GridView) v.findViewById(R.id.gridView1); 
     gridview.setOnItemClickListener(this); 
     btemergency = (Button) v.findViewById(R.id.btemergency); 

     Button call_button = (Button)v.findViewById(R.id.btemergency); 
     call_button.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) 
       { 
       Intent callIntent = new Intent(Intent.ACTION_DIAL); 
       callIntent.setData(Uri.parse("tel:123456789")); 
       startActivity(callIntent); 
       } 

      }); 
     data.add(new GridViewItem(getResources().getString(R.string.menu_product), getResources().getDrawable(R.drawable.ic_product))); 
     data.add(new GridViewItem(getResources().getString(R.string.menu_cart), getResources().getDrawable(R.drawable.ic_cart))); 


     data.add(new GridViewItem(getResources().getString(R.string.menu_info), getResources().getDrawable(R.drawable.ic_info))); 


     data.add(new GridViewItem(getResources().getString(R.string.menu_contact), getResources().getDrawable(R.drawable.ic_contact))); 

     setDataAdapter(); 

     return v; 


    } 

    // Set the Data Adapter 
    private void setDataAdapter() { 
     gridviewAdapter = new AdapaterGridView(getActivity(), R.layout.fragment_list_item, data); 
     gridview.setAdapter(gridviewAdapter); 
    } 

    @Override 
    public void onItemClick(final AdapterView<?> arg0, final View view, final int position, final long id) { 
     if (position == 0) { 
      startActivity(new Intent(getActivity(), ActivityCategoryList.class)); 
      getActivity().overridePendingTransition(R.anim.open_next, R.anim.close_next); 
     } else if (position == 1) { 
      startActivity(new Intent(getActivity(), ActivityCart.class)); 
      getActivity().overridePendingTransition(R.anim.open_next, R.anim.close_next); 


     } else if (position == 2) { 
      startActivity(new Intent(getActivity(), ActivityInformation.class)); 
      getActivity().overridePendingTransition(R.anim.open_next, R.anim.close_next); 


     } else { 
      startActivity(new Intent(getActivity(), ActivityContactUs.class)); 
      getActivity().overridePendingTransition(R.anim.open_next, R.anim.close_next); 
     } 

    } 

} 
+0

Я пробовал, ошибок больше нет. Но когда я нажимаю на кнопку, ничего не происходит. –

+0

Попробуйте заменить 'Intent callIntent = новый Intent (Intent.ACTION_CALL);' с 'Intent callIntent = новый Intent (Intent.ACTION_DIAL)' – 0p3n5ourcE

+0

Также он должен быть Button call_button = (Button) v.findViewById (R.id. btemergency); – 0p3n5ourcE

0

Просто убедитесь, что вы добавили разрешение в файле манифеста в правильном порядке, прямо над тегом приложения

<uses-permission android:name="android.permission.CALL_PHONE" /> 

затем поместить этот код в на кнопку мыши.

Intent callIntent = new Intent(Intent.ACTION_CALL); 
       callIntent.setData(Uri.parse("tel:0377778888")); 
       startActivity(callIntent); 

Сообщите мне о последствиях.

+0

Я думаю, что я не установил onclicklistner. где это сделать. Кнопка мертва на эмуляторе или телефоне. –

0

Попробуйте

// Вызов функции

Intent callIntent = new Intent(Intent.ACTION_CALL); 
       callIntent.setData(Uri.parse("tel:"+number)); 
       startActivity(callIntent); 
Смежные вопросы