2016-02-13 87 views
0
public class MainActivity extends AppCompatActivity implements 
    TopSectionFragment.TopSectionListener { 

当我尝试实施TopSectionFragment书写云红和,然后它说Cannot resolve symbol当我的鼠标越过它。实现TopSectionFragment无法解析符号机器人工作室

这一切都发生在Android Studio中。

我MainActivity.java看起来像这样:

package com.example.danielhunter.fragments; 

import android.support.v7.app.AppCompatActivity; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem;` 


public class MainActivity extends AppCompatActivity 
    implements TopSectionFragment.TopSectionListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
} 

我TopSectionFragment.java如下链接才可这样:

import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.view.ViewGroup; 
import android.view.View; 
import android.view.LayoutInflater; 
import android.support.v4.app.Fragment; 
import android.widget.Button; 
import android.widget.EditText; 
import android.app.Activity; 

import com.example.danielhunter.fragments.R; 


public class TopSectionFragment extends Fragment { 

private static EditText topTextInput; 
private static EditText bottomTextInput; 

TopSectionListener activityCommander; 

    public interface TopSectionListener{ 
    public void createMeme(String top,String bottom); 


    } 


    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     try{ 
     activityCommander = (TopSectionListener) activity; 

     }catch (ClassCastException e){ 
      throw new ClassCastException(activity.toString()); 
     } 



    } 

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

     View view = inflater.inflate(R.layout.top_section_fragment, container, false); 

     topTextInput = (EditText) view.findViewById(R.id.topTextInput); 
     bottomTextInput = (EditText) view.findViewById(R.id.bottomTextInput); 

     final Button button = (Button) view.findViewById(R.id.button); 


     button.setOnClickListener(
       new View.OnClickListener(){ 
        public void onClick(View v){ 
         buttonClicked(v); 


        } 
       } 
     ); 



     return view; 



    } 
    // calls this when the button is clicked 
    public void buttonClicked(View view){ 
    activityCommander.createMeme(topTextInput.getText().toString(), bottomTextInput.getText().toString()); 

    } 

    } 

回答

0

为了一个类来正确地实现一个接口,它必须包含界面中定义的所有方法的实现。在你的情况下,MainActivity需要有一个签名为void createMeme(String top,String bottom)的方法才能编译。

+0

MainActivity将如何显示? –

+0

如果您遵循Android Studio中的quickfix建议,它实际上会为您创建方法。它看起来像这个'public void createMeme(String top,String bottom){}',或者本质上,就像接口定义一样,但是有一个方法体。 –