传递一个整数变量,该变量从适配器类动态变化为活动

时间:2015-04-28 08:40:52

标签: android listview variables android-intent custom-adapter

我正在尝试将listView Adapter Class(扩展BaseAdapter)中的Integer变量传递给Activity(ActionBarActivity)。这应该在onClickListener中完成。任何人都可以帮助解决这个问题。

holder1.companyName_textView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Toast.makeText(activity, "CpsID: "
                    + searchresultList.get(position).getCpsId(),
                    Toast.LENGTH_SHORT).show();
            Toast.makeText(activity, "Company Name: "
                    + searchresultList.get(position).getCpsName(),
                    Toast.LENGTH_LONG).show();

            Intent intent = new Intent(activity, CompanyProfile_Activity.class);
            intent.putExtra("companyCpsId", searchresultList.get(position).getCpsId());
            activity.startActivity(intent);
        }
    });

另外请解释如何在我的活动课程中收到它。

2 个答案:

答案 0 :(得分:1)

public class CompanyProfile_Activity extends Activity{


    int default_value=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        int value=getIntent().getIntExtra("companyCpsId", default_value);
        Toast.makeText(CompanyProfile_Activity.this,"Id: "+value, Toast.LENGTH_LONG).show();



    }

}

并且不要忘记将这些代码添加到AndroidManifest.xml文件中

<activity
        android:name=".CompanyProfile_Activity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

答案 1 :(得分:0)

如果要在适配器和当前活动之间进行通信,请使用此选项 创建类似

的界面
public interface OnItemValueChange{
 public void onValueChange(String value);
}

使用

YourActivity implement OnItemValueChange

创建适配器时,将此接口引用传递给适配器,如

adapter.setOnValueChangeListener(this);

将此接口引用保存在适配器中以及每当要发送一些数据时

interfaceReference.onValueChange("text");

以上方法位于您的活动中 的修改 如果您想在新活动中获得价值,请使用

int id =  getIntent().getIntExtra("CompanyCsId");