無法在此代碼中從CustomAdapter & setArguments(bundle)
調用getSupportFragmentManager()
並在另一個片段中使用它。我無法在我的代碼中解決這兩個方法。我如何調用這些方法。請有人試圖幫助我這個樣子如何在ArrayAdapter中調用getSupportFragmentManager()
FragmentManager quote_fm = context.getSupportFragmentManager().beginTransaction();
或
FragmentManager quote_fm = ((MainActivity)context).getSupportFragmentManager().beginTransaction();
啓動片段所需的代碼
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.ArrayList;
public class CustomGridViewAdapter extends ArrayAdapter<CategoryPost> {
private Context context;
private int layoutResourceId;
private ArrayList<CategoryPost> data = new ArrayList<CategoryPost>();
private Fragment getquoteFrag;
public CustomGridViewAdapter(Context context, int resource, ArrayList<CategoryPost> objects) {
super(context, resource, objects);
this.layoutResourceId = resource;
this.context = context;
this.data = objects;
}
static class ViewHolder {
TextView success, message, id, name;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(layoutResourceId, parent, false);
holder.id = (TextView)convertView.findViewById(R.id.tv_data_id);
holder.name = (TextView)convertView.findViewById(R.id.tv_name_id);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
final CategoryPost post = data.get(position);
holder.name.setText(post.getName());
holder.name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
getquoteFrag = new GetQuoteFragment();
FragmentManager quote_fm = getSupportFragmentManager().beginTransaction();;
FragmentTransaction quote_ft = quote_fm.beginTransaction();
bundle.putString("pos", String.valueOf(post.getId()));
quote_fm.setArguments(bundle);
}
});
return convertView;
}
}
'getSupportFragmentManager'是FragmentActivity'的'一員......所以很明顯,如果你瓦納調用它,你需要參考 – Selvin
該類@Selvin實例 我仍然無法解決它。 –
爲什麼你需要它在適配器? – Avi