如何获得发出意图的布局可读ID



我如何获得可读 specyfic布局的ID?

我的活动的片段_miejsce.xml文件:

            <LinearLayout
        android:id="@+id/elementPlace"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:background="@drawable/layout_main_menu_selector"
        android:clickable="true"
        android:onClick="Place">
        ...
    </LinearLayout>

此布局的活动:

public class PlacesActivity extends AppCompatActivity {
LinearLayout element;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_places);
    element = (LinearLayout) findViewById(R.id.elementPlace);
}
public void Place(android.view.View v){
    Intent place = new Intent(this, Miejsce.class);
    place.putExtra("source", element.toString());
    startActivity(place);
}}

miejsce.java(我们意图的目的地):

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_miejsce);
    Intent src = getIntent();
    String source = src.getStringExtra("source");
    TextView msg = (TextView) findViewById(R.id.napis);
    msg.setText(getIntent().getStringExtra("source"));
    Toast.makeText(getApplicationContext(), "Source: " + source, Toast.LENGTH_SHORT).show();
}

结果(来自吐司):来源:android.widget.linearlayout {14E02738 V.E ... c。... P .... 0,165-1080,375#7F0C007E应用:ID/ElementPlace}

我想使用SpecyFic布局的ID,因为Miejsce.java将生成一个依赖源的布局。例如:有3种布局(酒店,汽油站,餐厅)。用户单击了其中一个(@ ID/餐厅),并以源ID(触发器)发送了意图。Java代码与餐厅生成了特定的布局。

我会说,因为您已经知道ID名称,你可以做类似的事情字符串id_name =" r.id.id_name"并通过您的意图传递。

感谢您的链接@jackowski。更改后的placeActivity.java:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_places);
}
public void Place(android.view.View v){
    switch(v.getId()){
        case R.id.elementPlace:
            Intent place = new Intent(this, Place.class);
            place.putExtra("source", "elementPlace");
            startActivity(place);
            break;
    }
}

最新更新