0

Я использую Recyclerview внутри макета координатора. В Main.Xml у меня есть кнопка Save и Edit Text. Поэтому при нажатии кнопки «Сохранить» мне нужно передать значение текстового значения в следующий Xml, который имеет RecyclerView. Но возникает ошибка времени выполнения. Что на самом деле происходит с этим кодом?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

В качестве альтернативы вы можете программно изменять функцию окна.

В вашей деятельности, где не требуется название, добавить requestWindowFeature(Window.FEATURE_NO_TITLE) в вашем onCreate() метод

так:

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

0

Вы не добавили тег активности для вашей страницы Builder в вашем манифест. В вашем манифесте добавьте тег активности для вашей страницы Builder, подобный этому

<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

Большое спасибо за это. Но даже если я не добавил эту активность в свой манифест, это должно дать ошибку, когда я нажимаю кнопку сохранения, чтобы перейти к следующему действию. У меня есть проблема в mainactivity и не могу установить приложение на моем устройстве. – Niroj

+0

можете ли вы разместить свой файл style.xml ...? –

+0