2013-12-12 4 views
2

Android Studio 0.3.7을 사용하고 있으며 최근 Android Studio 버전에서 ListFragment 마법사를 사용했습니다. ListFragment가 성공적으로 생성되었지만 javadoc 클래스에 오류가 있습니다. '콜백'기호를 해결할 수 없습니다. 이것은 컴파일 또는 런타임 오류가 아니지만 콜백 인터페이스가 Android SDK에 존재하지 않는다는 것을 이해하지 못합니다. 또한 호스트 활동이 어떤 인터페이스를 정확하게 구현해야하는지 알고 싶습니다. 어떤 도움을 주셔서 감사합니다. 내 목록 조각 :Android Studio에서 심볼 콜백을 해결할 수 없습니다.

/** 
* A fragment representing a list of Items. 
* <p /> 
* <p /> 
* Activities containing this fragment MUST implement the {@link Callbacks} 
* interface. 
*/ 
public class UyeIslemHacmiFragment extends ListFragment { 

private int mUyeNo; 

private OnFragmentInteractionListener mListener; 

public static UyeIslemHacmiFragment newInstance(int uyeNo) { 
    UyeIslemHacmiFragment fragment = new UyeIslemHacmiFragment(); 
    Bundle args = new Bundle(); 
    args.putInt(Constants.ARG_UYE_NO, uyeNo); 
    fragment.setArguments(args); 
    return fragment; 
} 

/** 
* Mandatory empty constructor for the fragment manager to instantiate the 
* fragment (e.g. upon screen orientation changes). 
*/ 
public UyeIslemHacmiFragment() { 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (getArguments() != null) { 
     mUyeNo = getArguments().getInt(Constants.ARG_UYE_NO); 
    } 

    // TODO: Change Adapter to display your content 
    setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(), 
      android.R.layout.simple_list_item_1, android.R.id.text1, DummyContent.ITEMS)); 
} 


@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    try { 
     mListener = (OnFragmentInteractionListener) activity; 
    } catch (ClassCastException e) { 
     throw new ClassCastException(activity.toString() 
      + " must implement OnFragmentInteractionListener"); 
    } 
} 

@Override 
public void onDetach() { 
    super.onDetach(); 
    mListener = null; 
} 


@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 

    if (null != mListener) { 
     // Notify the active callbacks interface (the activity, if the 
     // fragment is attached to one) that an item has been selected. 
     mListener.onFragmentInteraction(DummyContent.ITEMS.get(position).id); 
    } 
} 

/** 
* This interface must be implemented by activities that contain this 
* fragment to allow an interaction in this fragment to be communicated 
* to the activity and potentially other fragments contained in that 
* activity. 
* <p> 
* See the Android Training lesson <a href= 
* "http://developer.android.com/training/basics/fragments/communicating.html" 
* >Communicating with Other Fragments</a> for more information. 
*/ 
public interface OnFragmentInteractionListener { 
    // TODO: Update argument type and name 
    public void onFragmentInteraction(String id); 
} 

} 

답변

2

javadoc에 오류가 Callbacks 클래스를 찾을하고 {@link Callbacks}의 Javadoc 태그에 참조를 분석 할 수 없습니다 수 있다는 것입니다. 주석 문제가 오류 수준까지 올라가지 않기 때문에 이것은 컴파일 오류가 아닙니다.

이 마법사의 템플릿이 약간 손상된 것처럼 보입니다. 나는 그것에 대해 https://code.google.com/p/android/issues/detail?id=63593를 신청했다. 당분간 당신은 Javadoc의 해당 부분을 삭제할 수 있다고 생각합니다.

+1

아마 할 수있다'{@link UyeIslemHacmiFragment.OnFragmentInteractionListener}', 맞죠? – ismailarilik

0
package com.spanishestate.propertiesforsale; 

     import android.support.v7.app.AppCompatActivity; 
     import android.os.Bundle; 
     import android.webkit.WebView; 
     import android.webkit.WebViewClient; 
     import android.widget.ProgressBar; 
     import android.net.Uri; 


public class MainActivity extends AppCompatActivity { 

    WebView webView; 
    ProgressBar progressBar; 

    private ValueCallback<Uri> mUploadMessage; 
    private final static int FILECHOOSER_RESULTCODE=1; 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, 
            Intent intent) { 
     if(requestCode==FILECHOOSER_RESULTCODE) 
     { 
      if (null == mUploadMessage) return; 
      Uri result = intent == null || resultCode != RESULT_OK ? null 
        : intent.getData(); 
      mUploadMessage.onReceiveValue(result); 
      mUploadMessage = null; 
     } 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     webView = (WebView) findViewById(R.id.webView); 
     progressBar = (ProgressBar) findViewById(R.id.progressBar); 

     webView = new WebView(this); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.loadUrl("http://www.script-tutorials.com/demos/199/index.html"); 
     webView.setWebViewClient(new myWebClient()); 
     webView.setWebChromeClient(new WebChromeClient() 
     { 
      //The undocumented magic method override 
      //Eclipse will swear at you if you try to put @Override here 
      // For Android 3.0+ 
      public void openFileChooser(ValueCallback<Uri> uploadMsg) { 

       mUploadMessage = uploadMsg; 
       Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
       i.addCategory(Intent.CATEGORY_OPENABLE); 
       i.setType("image/*"); 
       MyWb.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE); 

      } 

      // For Android 3.0+ 
      public void openFileChooser(ValueCallback uploadMsg, String acceptType) { 
       mUploadMessage = uploadMsg; 
       Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
       i.addCategory(Intent.CATEGORY_OPENABLE); 
       i.setType("*/*"); 
       MyWb.this.startActivityForResult(
         Intent.createChooser(i, "File Browser"), 
         FILECHOOSER_RESULTCODE); 
      } 

      //For Android 4.1 
      public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){ 
       mUploadMessage = uploadMsg; 
       Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
       i.addCategory(Intent.CATEGORY_OPENABLE); 
       i.setType("image/*"); 
       MyWb.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), MyWb.FILECHOOSER_RESULTCODE); 

      } 

     }); 


     setContentView(webView); 


    } 

    public class myWebClient extends WebViewClient 
    { 
     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      // TODO Auto-generated method stub 
      super.onPageStarted(view, url, favicon); 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      // TODO Auto-generated method stub 

      view.loadUrl(url); 
      return true; 

     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      // TODO Auto-generated method stub 
      super.onPageFinished(view, url); 

      progressBar.setVisibility(View.GONE); 
     } 
    } 

    //flipscreen not loading again 
    @Override 
    public void onConfigurationChanged(Configuration newConfig){ 
     super.onConfigurationChanged(newConfig); 
    } 

// To handle "Back" key press event for WebView to go back to previous screen. 
/*@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) { 
     web.goBack(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
}*/ 
} 
+0

이 코드 단편은 질문을 해결할 수 있지만 [설명 포함] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)은 게시물의 품질을 향상시키는 데 정말로 도움이됩니다. 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. –

관련 문제