2017-03-07 31 views
1

我正在学习改造一个演示应用程序的工作,我已经使用未改造工作中的应用,走出去一步step.can谁能帮助我? 我已经使用@onclick标注制作click事件,但是当我点击button.So谁能告诉我什么是从myside错误是从未执行?API调用Android的

void getContacts() { 
ApiInterface apiService = 
     ApiClient.getClient().create(ApiInterface.class); 
Call<ContactRespones> call = apiService.getContacts(); 
call.enqueue(new Callback<ContactRespones>() { 
    @Override 
    public void onResponse(Call<ContactRespones> call, Response<ContactRespones> response) { 
     System.out.print("RESPONES---------------->" + response.body().toString()); 
     List<ContactRequest> movies = response.body().getContacts(); 
     Log.d(TAG, "Number of movies received: " + movies.size()); 
     // recyclerView.setAdapter(new MoviesAdapter(movies, R.layout.list_item_movie, getApplicationContext())); 
    } 

    @Override 
    public void onFailure(Call<ContactRespones> call, Throwable t) { 
     Log.e(TAG, t.toString()); 
    } 
}); 

}

**

+0

你gradle这个....? – siva35

+0

@ siva35 -added edit.Please检查 –

+1

请注意这http://jakewharton.github.io/butterknife/ – siva35

回答

0

你的代码应该像下面。

private static final String TAG = MainActivity.class.getSimpleName(); 
    @BindView(R.id.btn_1) 
    Button button; 
    @BindView(R.id.lv_contacts) 
    RecyclerView lv_contacts; 

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

    @OnClick(R.id.btn_1) 
    public void buttonclick() { 
     button.setText("Clicked!"); 
    } 
+0

没有任何改变..!你写的代码相同。 –

0

的onCreate: Button btn = (Button) findViewById(R.id.btn_1); btn.setOnClickListener(this); 得到一个OnClickListener: 覆盖/实现方法... 然后在onclick: if(view.getId()==btn_1){ do sth. }

2

添加annotationProcessor到您的gradle产出,并重建gradle这个和项目:

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' 

在你的casae它会是这样的:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.2.1' 
    compile 'com.jakewharton:butterknife:8.5.1' 
    compile 'com.google.code.gson:gson:2.6.2' 
    compile 'com.squareup.retrofit2:retrofit:2.0.2' 
    compile 'com.squareup.retrofit2:converter-gson:2.0.2' 
    compile 'com.android.support:recyclerview-v7:23.3.0' 
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' 
} 
0

你可以尝试在按钮来查看添加此

android:onClick="buttonclick" 

所以它看起来像:

<Button 
    android:id="@+id/btn_1" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:onClick="buttonclick" 
    android:text="Get Contacts" 
    android:textSize="20dp" 
    android:layout_alignParentTop="true" /> 
0
 ## In your java code use: ## 

     @InjectView(R.id.btn_1) 
     Button button; 

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


      } 

      @OnClick(R.id.btn_1) 
      void submitButton(View view) { 
       if (view.getId() == R.id.btn_1) { 

        Toast.makeText(this, "Click", Toast.LENGTH_SHORT).show(); 
       } 
      } 

    ## in your activity_main.xml : ## 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     tools:context=".MainActivity"> 


     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/btn_1" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_marginLeft="59dp" 
      android:layout_marginStart="59dp" 
      android:layout_marginTop="132dp" 
      android:onClick="submitButton"/> 
    </RelativeLayout> 

## in build.gradle file(app) ## 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.0' 
    compile 'com.jakewharton:butterknife:6.1.0' 
} 
+0

当我添加InjectView时,它会显示“无法解析符号”。 –

+0

你在build.gradle中添加了所有的依赖关系吗? – Abhinay

+0

你能检查我的gradle吗?有什么缺失? –

0

我发现butterknif的旧版本工作正常使用@Bind注释,我已经改变了gradle中的butterknife的依赖版本,如下所示,它的工作非常好。

compile 'com.jakewharton:butterknife:7.0.1' 
+0

大它的工作!但它也应该与最新版本一起工作。很多改变和修正是在新版本制作:https://github.com/JakeWharton/butterknife/blob/master/CHANGELOG.md揣摩出来,但在你的情况下,主要的问题是gradle这个依赖;) – miljon