2016-08-13 61 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

你使用的是什么targetSdkVersion? – 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 = new Intent(Intent.ACTION_DIAL)' – 0p3n5ourcE

+0

替换'Intent callIntent = new Intent(Intent.ACTION_CALL);'此外,它必须是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);