为Intent中传递的每个不同参数更改TextView中的数据

时间:2016-07-09 16:15:09

标签: android listview android-intent textview

我有一个TabHost包含7个标签,每个标签中有10个项目(listView)。创建70 Intent来处理每个项目的请求是非常不可能的。所以任何人都可以提供最好的方法来处理它们,就像每个标签的一个意图(即10个项目)但具有不同的数据。只是TextView中的数据发生了变化。

2 个答案:

答案 0 :(得分:0)

您可以使用intent传递数据,然后启动它。

添加此类数据

Intent intent = new Intent(current.this, AndroidTabRestaurantDescSearchListView.class);
intent.putExtra("keyName","value");
startActivity(intent);

像这样检索:

String data = getIntent().getExtras().getString("keyName");

Look here how to pass data using intents.

答案 1 :(得分:0)

你考虑使用像EventBus这样的东西吗? (https://github.com/greenrobot/EventBus

例如,您希望将一些数据从一个片段传递到另一个片段:

首先,创建一个数据类,例如我想在片段之间传递字符串:

public class EventData {
/**
* Data
**/
private String mMessage;

/**
* Constructor 
**/
public EventData(String message) {
    mMessage = message;
}

/**
* GET / SET
**/
public void setMessage(String message) {
    mMessage = message;
}
public String getMessage() {
    return mMessage;
}

}

FragmentA是一个接收器,在这个类中,您接收事件总线传递的数据:

public class FragmentA extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_a, container, false);

    // Register this class to handle events from event bus
    EventBus.getDefault().register(this);

    return view;
}

/**
* This method would be fired upon event arrives
* @param data data, passed with an event. (In fact Argument can be any type)
**/
@Subscribe
public void onMessageEvent(final EventData data) {
    // do some code
}

}

FragmentB:此类是数据发送者

public class FragmentB extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_b, container, false);

    // Now just post something to fragment A
    EventBus.getDefault().post(
        new EventData("I am a message!");
    );

    return view;
}

}

请注意,通过所有应用程序可以访问发送到事件总线的数据,这意味着您可以注册多个片段来接收此事件。一般来说,这是一件好事,虽然有时候需要额外检查这是预期的事件(例如为每个事件分配唯一的ID)