好的人我有一个我从WebService填充的RecyclerView,我有一个DataProvider类来管理异步请求。因此,当获取数据时,我需要此DataProvider通知RecyclerView.Adapter有新数据。为此,我需要向RecyclerView.Adapter添加一个允许此通信的方法。但是当我使用这个新方法创建一个基类(扩展了RecyclerView.Adapter),然后创建自定义适配器时,它不会让我覆盖RecyclerView.Adapter方法。我做错了什么?
这是基类
package com.example.liam.arduinocontroller;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.os.StrictMode;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
public class ControlClass extends ActionBarActivity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
StrictMode.ThreadPolicy policy = new StrictMode.
ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_control_class);
View led1on = findViewById(R.id.led_1on);
View led1off = findViewById(R.id.led_1off);
View led2on = findViewById(R.id.led_2on);
View led2off = findViewById(R.id.led_2off);
led1on.setOnClickListener(this);
led1off.setOnClickListener(this);
led2on.setOnClickListener(this);
led2off.setOnClickListener(this);
}
public void commandArduino(String url) {
try {
HttpClient httpclient = new DefaultHttpClient();
HttpParams httpParameters = httpclient.getParams();
HttpConnectionParams.setTcpNoDelay(httpParameters, true);
httpclient.execute(new HttpGet(url));
} catch (Exception e) {
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_control_class, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View thisView) {
switch(thisView.getId())
{
case R.id.led_1on:
commandArduino("http://192.168.0.101/?2");
Toast.makeText(getApplicationContext(), "led_1on", Toast.LENGTH_LONG).show();
break;
case R.id.led_1off:
commandArduino("http://192.168.0.101/?3");
Toast.makeText(getApplicationContext(), "led_1off", Toast.LENGTH_LONG).show();
break;
case R.id.led_2on:
commandArduino("http://192.168.0.101/?4");
Intent intent = new Intent(this, TempDisplay.class);
startActivity(intent);
break;
case R.id.led_2off:
commandArduino("http://192.168.0.101/?5");
Intent j = new Intent(this, LightDisplay.class);
startActivity(j);
break;
}
}
}
这是扩展BaseRecyclerAdapter的自定义适配器
public abstract class BaseRecyclerAdapter extends RecyclerView.Adapter<BaseRecyclerAdapter.ViewHolder>{
public static class ViewHolder extends RecyclerView.ViewHolder{
public ViewHolder (View v){
super(v);
}
}
public BaseRecyclerAdapter(RecyclerView rv){
}
public void setDataSet( String data) {
//This is the method i need to add
}
}
我想这与类型参数有关,但我无法弄清楚发生了什么