0

我在协调器布局中使用RecyclerView。在Main.Xml中我有一个保存按钮和编辑文本字段。所以点击保存按钮我需要将编辑文本值传递给下一个有RecyclerView的Xml。但发生运行时错误。这段代码真的发生了什么?RecyclerView内部坐标布局

MainActivity:

public class MainActivity extends AppCompatActivity implements RecyclerViewAdapter.OnItemClickListener { 
EditText textIn,txtHeading; 
Button buttonAdd,btnsave; 
LinearLayout container; 


private RecyclerView myRecyclerView; 
private LinearLayoutManager linearLayoutManager; 
private RecyclerViewAdapter myRecyclerViewAdapter; 
private RecyclerView.LayoutManager recyclermanager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    myRecyclerView = (RecyclerView)findViewById(R.id.recyclerView_builderxml); 

    linearLayoutManager = 
      new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); 

    myRecyclerViewAdapter = new RecyclerViewAdapter(this); 
    myRecyclerViewAdapter.setOnItemClickListener(this); 

    myRecyclerView.setAdapter(myRecyclerViewAdapter); 
    myRecyclerView.setLayoutManager(linearLayoutManager); 

    txtHeading = (EditText)findViewById(R.id.heading); 

    btnsave =(Button) findViewById(R.id.btn_save); 
    btnsave.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String newName = txtHeading.getText().toString(); 
      Intent intent = new Intent(getApplicationContext(),BuilderPage.class); 
      myRecyclerViewAdapter.add(0,newName); 
      startActivity(intent); 
      Toast.makeText(MainActivity.this,"You added" +newName.toUpperCase()+ "in your view",Toast.LENGTH_LONG).show(); 
     } 
    }); 
} 
@Override 
    public void onItemClick(RecyclerViewAdapter.ItemHolder item, int position) { 
    } 
} 

BuilderPage

/* 
* Created by niroj on 8/29/16. 
*/ 


public class BuilderPage extends AppCompatActivity { 

    @BindView(R.id.edittxtsurvey) 
    EditText editTxtsurveyname; 

    @BindView(R.id.toolbar_builderxml) 
    Toolbar toolbar1; 

    @BindView(R.id.recyclerView_builderxml) 
    RecyclerView recyclerView_Builder; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.builder_layout); 
     ButterKnife.bind(this); 
     setSupportActionBar(toolbar1); 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 

     // display menu incons from menu_main XML 
    } 

}

而且我Builder.XML

<?xml version="1.0" encoding="utf-8"?> 
    <android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/coordinatorLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView_builderxml" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar_builderxml" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|enterAlways"> 

     </android.support.v7.widget.Toolbar> 
    </android.support.design.widget.AppBarLayout> 
    </android.support.design.widget.CoordinatorLayout> 

这是我adapterclass用于回收

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ItemHolder> { 

    private List<String> HeadingName; 
    private OnItemClickListener onItemClickListener; 
    private LayoutInflater layoutInflater; 

    public RecyclerViewAdapter(Context context){ 
     layoutInflater = LayoutInflater.from(context); 
     HeadingName = new ArrayList<String>(); 
    } 

    @Override 
    public RecyclerViewAdapter.ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View itemView = layoutInflater.inflate(R.layout.list_item, parent, false); 
     return new ItemHolder(itemView, this); 
    } 

    @Override 
    public void onBindViewHolder(RecyclerViewAdapter.ItemHolder holder, int position) { 
     holder.setItemName(HeadingName.get(position)); 

    } 

    @Override 
    public int getItemCount() { 
     return HeadingName.size(); 
    } 

    public void setOnItemClickListener(OnItemClickListener listener){ 
     onItemClickListener = listener; 
    } 

    public OnItemClickListener getOnItemClickListener(){ 
     return onItemClickListener; 
    } 

    public interface OnItemClickListener{ 
     public void onItemClick(ItemHolder item, int position); 
    } 

    public void add(int location, String iName){ 
     HeadingName.add(location, iName); 
     notifyItemInserted(location); 
    } 


    public static class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 

     private RecyclerViewAdapter parent; 
     TextView textHeadingname; 

     public ItemHolder(View itemView, RecyclerViewAdapter parent) { 
      super(itemView); 
      itemView.setOnClickListener(this); 
      this.parent = parent; 
      textHeadingname = (TextView) itemView.findViewById(R.id.title_name); 
     } 

     public void setItemName(CharSequence name){ 
      textHeadingname.setText(name); 
     } 

     public CharSequence getItemName(){ 
      return textHeadingname.getText(); 
     } 

     @Override 
     public void onClick(View v) { 
      final OnItemClickListener listener = parent.getOnItemClickListener(); 
      if(listener != null){ 
       listener.onItemClick(this, getPosition()); 
      } 
     } 
    } 
} 

Error Log

这是我的清单

<?xml version="1.0" encoding="utf-8"?> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme" > 
    <!--android:theme="@style/Theme.AppCompat.Light"--> > 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" 
       android:theme ="@android:style/Theme.Black.NoTitleBar.Fullscreen"/> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

+0

“但出现运行时错误” - 这个错误将是找到适合您的问题的解决方案非常有帮助。 –

+0

我搜索了它,但仍然无法修复它.. – Niroj

+0

请张贴您的错误日志。 –

回答

0

或者,您可以通过编程方式更改窗口功能。

在你的活动,你不需要头衔,在你onCreate()方法

这样添加requestWindowFeature(Window.FEATURE_NO_TITLE)

super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_signup);

0

您没有中添加的活动广告代码为您生成的网页表现。在你的清单中添加活性标记为您生成器页面像这样

<application 
android:allowBackup="true" 
android:icon="@mipmap/ic_launcher" 
android:label="@string/app_name" 
android:supportsRtl="true" 
android:theme="@style/AppTheme" > 
<!--android:theme="@style/Theme.AppCompat.Light"--> > 
<activity android:name=".MainActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" 
      android:theme ="@android:style/Theme.Black.NoTitleBar.Fullscreen"/> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

<!--Activity Tag for your BuilderPage--> 
<activity android:name=".BuilderPage"> 
    </activity> 

</application> 
+0

非常感谢你的这一点。但即使我没有在我的清单中添加此活动,当按下保存按钮转到下一个活动时,这应该会出错。我在主要活动中遇到问题,无法在我的设备上安装应用程序。 – Niroj

+0

您可以发布您的style.xml文件吗? –

+0