2017-03-07 39 views
1

私はretrofitを学習するためのデモアプリケーションに取り組んでいます。私はアプリでretrofitを使用してstep.can誰か助けてくれましたか? clickイベントを作るために@onclickアノテーションを使用しましたが、ボタンをクリックしても実行されません。誰でもmysideから間違っていることを教えてください。アンドロイドで動作していないretrofitを使用したapiコール

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 - 編集中に追加してください。 –

+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を得る: メソッドのオーバーライド/実装... をその後、クリック時に: if(view.getId()==btn_1){ do sth. }

2

あなたのGradleにannotationProcessorを追加し、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のバターナイフの依存バージョンを変更し、その作業は非常にうまくいった。

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

素晴らしいです!しかし、最新のバージョンでも動作するはずです。新しいバージョンでは多くの変更と修正が行われました:https://github.com/JakeWharton/butterknife/blob/master/CHANGELOG.mdそれを理解しようとしましたが、あなたの主な問題はgradle依存でした;) – miljon

関連する問題